Като специалисти по данни, ние често помагаме на бизнеса, като намираме значими прозрения в данните. Това може да включва прогнозиране на ценен бизнес индикатор, така че вземащите решения да могат да вземат определено решение. Е.. това е теорията, но понякога е вярно. Това, което не е вярно, е, че лицата, вземащи решения, приемат нашите базирани на данни препоръки във формата, която се опитваме да представим. Те задават много други въпроси, вероятно за да развият пълно разбиране на нашите препоръки или може би за да изградят повече доверие в нашия анализ. Въпреки това, когато представяме резултатите си в статична презентация на PowerPoint (вероятно подготвена за набор от условия), слайдовете може да не съдържат отговорите, които бизнесът търси.

Същият проблем може да се погледне от различен ъгъл. Да речем, че изграждаме модел на машинно обучение, който показва добра точност на тестовите данни (исторически стойности на предиктори). Бизнесът би искал да разбере какво ще се случи с новото бъдеще или различните стойности на предикторите. Може да има неограничен брой комбинации от тези предикторни стойности. Тогава един статичен набор от резултати може да не покрива всички възможни сценарии. Като алтернатива, изпълняваме или модифицираме код на тетрадка на Jupyter, за да стигнем до отговора, може да рискуваме да загубим вниманието на публиката.

Един възможен начин е да се изчислят предварително много сценарии и да се постави преден край за отчитане (Tableau, например), който работи много ефективно. Но ще има известно усилие за предварително изчисление и не всичко може да бъде предварително изчислено.

Използването на бележника на Jupyter може да бъде по-директен и визуално интересен начин за представяне на резултатите от науката за данните/статистическото моделиране в бизнес дискусия. Пример е показан по-долу.

Преди да започна, бих искал да призная източниците на моите открития:

Изграждане на анализ какво-ако върху регресионен модел

За целите на демонстриране на концепцията, нека разгледаме просто уравнение, което произлиза от регресионен модел.

Бизнес сценарият може да бъде предвиждането на бъдещи разходи за ремонт (или поддръжка) (Y), които зависят от редица фактори. Да кажем, че има 3 фактора, единият от които може да е планираната продължителност на операцията (X1). Параметърът a0 може да се счита за фиксиран разход (може би рутинна поддръжка). Повече работни часове (по-високо X1) биха довели до повече ремонтни нужди или разходи (Y), което би довело до положителен a1. Тази връзка може да се промени (вероятно да се подобри), когато постъпят повече инкрементални данни.

Във всеки даден момент от време и с най-наличните исторически данни, бизнесът би искал да променя бъдещите стойности X1, X2 и X3 въз основа на техните планове и познания за домейна и да види техния ефект от „прогнозата“ на разходите за ремонт (Y) .

За да изградим този сценарий какво ще стане, можем да използваме разширението за джаджи. Първата стъпка е да активирате разширението, като използвате следната команда в терминала:

jupyter nbextension enable --py --sys-prefix widgetsnbextension

След това в бележника на Jupyter кодът по-долу може да се използва за анализ какво-ако. За краткост пропускам темата за „регресионно моделиране“ и ръчно присвоявам стойности на коефициентите.

from ipywidgets import widgets, interactive
from IPython.display import display
a0=1; a1=1; a2=2; a3=-1
def f(x1,x2,x3):
    value = a0 + a1*x1 + a2*x2 + a3*x3
    print 'The projected repairs costs are $%sM' % value
w = interactive(f, x1=widgets.IntSlider(min=1,max=30,step=1,value=x1),
            x2=widgets.IntSlider(min=1,max=20,step=1,value=x2),
            x3=widgets.IntSlider(min=0,max=3,step=1,value=x3))
display(w)

Резултатът е напълно интерактивен с помощта на функционалността на плъзгача:

Изграждане на интерфейс с филтър

Да приемем, че има две части, които се нуждаят от ремонт. За двете части са изградени отделни модели. Бихме искали да избираме една по една част и да провеждаме анализа „какво ако“.

from ipywidgets import widgets, interactive
from IPython.display import display
parts = {'PartA', 'PartB'}
def cost(part,x1,x2,x3):
    if part == 'PartA':
        a0=1; a1=1; a2=2; a3=-1
    if part == 'PartB':
        a0=2; a1=2; a2=4; a3=-1
value = a0 + a1*x1 + a2*x2 + a3*x3
    print 'The projected repair cost for %s is $%sM' % (part,value) 
    
x1_widget = widgets.IntSlider(min=1,max=30,step=1,value=1)
x2_widget = widgets.IntSlider(min=1,max=20,step=1,value=1)
x3_widget = widgets.IntSlider(min=0,max=3,step=1,value=1)
part_widget = widgets.Select(options=parts)
w1 = interactive(cost, part=part_widget,
                 x1=x1_widget,
                 x2=x2_widget,
                 x3=x3_widget)
display(w1)

Резултатът е напълно интерактивен с помощта на функционалността на плъзгача и филтъра:

Изводи

Тъй като предприятията възприемат усъвършенствани случаи на използване на науката за данни, ролята на учените по данни става ясна в бизнес среда и вече не се ограничава до областите на технологичния отдел. Съществува обаче празнина между резултатите от научните данни и процеса на вземане на бизнес решения. Текущите широко използвани инструменти, като Jupyter notebook, имат възможностите, които могат да намалят разликата, ако се използват по подходящ начин. В тази публикация разгледахме някои от тези аспекти.

В следващата част от тази поредица от публикации ще проучим по-напредналите аспекти към изграждането на удобна за бизнес потребителя система за стартиране и анализиране на научно решение за данни в преносим компютър Jupyter.