I dette innlegget vil jeg, med god hjelp av Alex Jones* og fra tekniske bigdatasamfunn, formidle hvordan datavitenskapkonsulenter trekker ut kunnskap av data.
Gartners Hype Cycle sier at Datavitenskap (Data Science) vil være på den såkalte "Plateu of productivity"... NÅ. Flere selskaper som har ambisjon om å forme vår datadrevne framtid er allerede godt i gang. Schibsted, med Finn, VG og Aftenposten, samt Spotify og Statoil er gode eksempler. Nå starter også det offentlige sakte, men sikkert opp.
Forskningsrådet, UiO, NTNU, SKD, NAV, Statoil m.fl. satser flere milliarder.

I denne (gjenopptatte) bloggserien "Data Science - hvordan gjør vi det?" gjennomgår jeg et utvalg av teknikker vi bruker for å skape kunnskap av data. Utvalget er stort. Jeg splitter derfor opp gjennomgangen i flere innlegg og starter med tre familier av teknikker i dette første innlegget i serien. 

Min målgruppe er vanlige forretningsfolk - ikke eksperter. Jeg prøver å bruke begreper som de fleste kan forholde seg til og ofrer presisjonsnivå til fordel for lettere tilgjengelighet.
Datavitenskap består av en rekke disipliner innen matematikk, statistikk, lingvistikk og informatikk (og faktisk også noe psykologi og naturvitenskap). Teknikkene er basert på resultater fra flere av disse fagdisiplinene.

I dette innlegget tar jeg for meg tre mye benyttede grunnleggende teknikker: 

  1. Lineær programmering
  2. Regresjonsanalyse og 
  3. Beslutningstrær 

Lineær programmering/Ikke-lineær programmering:

Lineær programmering  brukes for å maksimere eller minimere et nøkkeltall. 
Et klassisk eksempel er maksimering av lønnsomheten i en bedrift. I eksempelet vårt, visualisert i diagrammet "Linear Programming Chart" under, prøver vi å maksimere lønnsomheten til en møbelbedrift som produserer bord og stoler. 
Kostnadene ved å produsere bord og stoler er en vesentlig del av beregningen og det er begrensing på antall produksjonstimer tilgjengelig per dag. Den potensielle lønnsomheten beskrives ved en ordinær matematisk likning. Lønnsomheten skal i dette tilfellet maksimeres under de definerte begrensingene. 
Lineær programmering er du fri til å legge inn så mange begrensinger du kan komme på og er i stand til å beskrive matematisk.
Metoden krever en viss grad av matematisk forståelse og kunnskap om virksomhetens rammevilkår.

Hver likning er representert ved en linje i diagrammet under. Begrensingene er grønne linjer. Alternative lønnsomhetsnivåer er vist ved de stiplete røde linjene. Etter at alle linjene er definert finner metoden fram til det beste (optimale) punktet (nøkkeltallet). Dette punktet er der den røde linjen er "skjøvet lengst ut fra origo" uten å krysse begrensingene.
Utfordringer:
Metoden krever at man kjenner begrensingene og hvilken innflytelse disse har for måloppnåelsen.
For eksempel må man i vårt eksempel vite at:

Begrensinger/Rammevilkår:
1. å sette sammen stoler og bord tar like lang tid,
2. maksimalt 200 stoler og bord kan settes sammen i løpet av en dag,
3. å bearbeide finish'en krever 4 ganger så høy innsats for bord som for stoler,
4. maksimalt 100 bord eller 400 stoler kan lages i løpet av en dag og

Lønnsomhetsmål;
5. at hver stol gir 5 $ i profitt, mens hvert bord gir 15 $ i profitt.

Regresjonsanalyse

I regresjonsanalyse tilpasses en linje eller kurve av data til en matematisk funksjon.
y=ax+b er den matematiske beskrivelsen av en linje i et plan (x- og y-akse). 
Regresjonsanalysen finner en matematisk formel for sammenhengen mellom to måltall, eller i mer komplekse tilfeller, mellom mange måltall. 
Analysen etablerer matematiske likninger, ofte enkle lineære likninger (rett linje eller plan, (y =ax+b) eller i mer komplekse tilfeller polynomer (kurver eller kurvete plan) som beskriver forholdet mellom måltallene. I diagrammet under vises en lineær regresjon som finner formelen for forholdet mellom måltallene befolkning og årstall.
Analysen tester ut likninger og velger den likningen som gir linjen med totalt sett minst avstand til datagrunnlaget.  I dette eksemplet er svaret y=0.136x-267.2
Beslutningstrær
En av fordelene med et beslutningstre er at det er lett å tolke og lett å visualisere. Teknikken egner seg godt for å sette opp regler som besvarer ja/nei spørsmål.
Eksempler på spørsmål kan være:
  • bør jeg kjøpe denne aksjen eller ikke? 
  • er dette en lojal kunde?
  • er denne soppen giftig?
  • er denne blomsten en staude?
Algoritmen/dataprogrammet bygger beslutningstreet automatisk, eventuelt med litt støtte fra datavitenskapseksperten og bransjeeksperten.

Under ser vi et enkelt eksempel på et beslutningstre som vurderer om aksjehandlere vil bli værende hos mekleren eller om de vil avslutte sitt kundeforhold. 

Beslutningsalgoritmen finner skrankeverdier med mest mulig informasjon. Den prøver å finne variabler med verdier som gir tilnærmet like mange aksjehandlere i hver gruppe for hvert nivå i beslutningstreet. 
Vi har her funnet ut at frekvensen på handelen betyr mye for om aksjehandlerne vil fortsette å handle. Det er jo et forståelig kriterie. Hvis aksjespekulanten handler lite (mindre enn 9 ganger) så må profitten være større enn 3% av kapitalen for at vedkommende blir værende. Handler spekulanten flere enn 9 ganger og siste handel er mindre enn 65 dager siden så er sjansen størst for at han/hun blir værende.
Beslutningstre: Hvem kommer til å fortsette å handle hos denne aksjemekleren?




Begrensinger
Beslutningstrær egner seg best for relativt statiske data. Det kan være en utfordring at beslutningstreet kan bli for detaljert med for spesifikke regler. Kompetanse om området man lager regler for, samt kompetanse på datavitenskap kreves for å treffe best mulig for å treffe på hvor detaljert man skal la beslutningstreet bli. Dette må avveies nøye for å sikre at det gir gode resultater for klassifiseringen på nye dataEn av beslutningstreets svakheter er at en gal beslutning i toppen av treet følger beslutningsprosessen tvers igjennom.

Oppsummering

Jeg har nå ledet deg gjennom tre av de grunnleggende teknikkfamiliene, lineær programmering, regresjonsanalyse og beslutningstrærI neste innlegg i min lille serie "Data Science - hvordan gjør de det? " vil jeg ta for meg:
  1. klassifisering,
  2. anbefalingsmotorer (samhandlingsfiltrering - Amazon, Spotify etc.) og
  3. klyngeteknikker (clustering)
Takk for oppmerksomheten.

*Innlegget er i store trekk et fritt omarbeidet innlegg av deler av Alex Jones artikkel om Bigdatateknikker.


Espen Remman
Rådgiver/Partner
Chronos AS
tlf. 97557021
espen.remman(at)chronosit.no
twitter: EspenRemman
www.chronosit.com
Share on Twitter