MIT -forskere håber at fremme demokratiseringen af datavidenskab med et nyt værktøj til ikke -programmerere, der automatisk genererer modeller til analyse af rådata. Kredit:Christine Daniloff, MIT
MIT -forskere håber at fremme demokratiseringen af datavidenskab med et nyt værktøj til ikke -statistikere, der automatisk genererer modeller til analyse af rådata.
Demokratisering af datavidenskab er forestillingen om, at enhver, med lidt eller ingen ekspertise, kan udføre datavidenskab, hvis der er rigeligt med data og brugervenlige analyseværktøjer. Støtter den idé, det nye værktøj indtager datasæt og genererer sofistikerede statistiske modeller, der typisk bruges af eksperter til at analysere, fortolke, og forudsige underliggende mønstre i data.
Værktøjet lever i øjeblikket på Jupyter Notebook, en open-source webramme, der giver brugerne mulighed for at køre programmer interaktivt i deres browsere. Brugere behøver kun at skrive et par linjer kode for at afdække indsigt i, for eksempel, økonomiske tendenser, luftfart, afstemningsmønstre, spredning af sygdomme, og andre tendenser.
I et papir præsenteret på denne uges ACM SIGPLAN Symposium om principper for programmeringssprog, forskerne viser, at deres værktøj nøjagtigt kan udtrække mønstre og forudsige virkelige datasæt, og endda udkonkurrere manuelt konstruerede modeller i visse data-analyseopgaver.
"Målet på højt niveau er at gøre datavidenskab tilgængeligt for folk, der ikke er eksperter i statistik, "siger første forfatter Feras Saad '15, MEng '16, en ph.d. studerende på Institut for Elektroteknik og Datalogi (EECS). "Folk har mange datasæt, der sidder rundt, og vores mål er at bygge systemer, der lader folk automatisk få modeller, de kan bruge til at stille spørgsmål om disse data. "
Ultimativt, værktøjet adresserer en flaskehals inden for datavidenskabsområdet, siger medforfatter Vikash Mansinghka '05, MEng '09, Ph.d. '09, en forsker i Institut for Hjerne og Kognitive Videnskaber (BCS), der driver Probabilistic Computing Project. "Der er en bredt anerkendt mangel på mennesker, der forstår at modellere data godt, "siger han." Dette er et problem i regeringerne, den almennyttige sektor, og steder, hvor folk ikke har råd til dataforskere. "
Papirets andre medforfattere er Marco Cusumano-Towner, en EECS Ph.D. studerende; Ulrich Schaechtle, en BCS postdoc med Probabilistic Computing Project; og Martin Rinard, en EECS -professor og forsker i datalogi og kunstig intelligenslaboratorium.
Bayesiansk modellering
Værket anvender bayesiansk modellering, en statistikmetode, der løbende opdaterer sandsynligheden for en variabel, efterhånden som flere oplysninger om denne variabel bliver tilgængelige. For eksempel, statistiker og forfatter Nate Silver bruger Bayesian-baserede modeller til sit populære websted FiveThirtyEight. Op til et præsidentvalg, stedets modeller giver en første forudsigelse om, at en af kandidaterne vil vinde, baseret på forskellige meningsmålinger og andre økonomiske og demografiske data. Denne forudsigelse er variablen. På valgdagen, modellen bruger disse oplysninger, og vejer indgående stemmer og andre data, løbende at opdatere denne sandsynlighed for en kandidats potentiale for at vinde.
Mere generelt, Bayesianske modeller kan bruges til at "forudsige" - forudsige en ukendt værdi i datasættet - og til at afdække mønstre i data og forhold mellem variabler. I deres arbejde, forskerne fokuserede på to typer datasæt:tidsserier, en sekvens af datapunkter i kronologisk rækkefølge; og tabeldata, hvor hver række repræsenterer en enhed af interesse, og hver kolonne repræsenterer en attribut.
Tidsseriedatasæt kan bruges til at forudsige, sige, flytrafik i de kommende måneder eller år. En probabilistisk model knuser snesevis af historiske trafikdata og producerer et tidsseriediagram med fremtidige trafikmønstre aftegnet langs linjen. Modellen kan også afdække periodiske udsving korreleret med andre variabler, såsom årstid.
På den anden side, et tabelformat datasæt, der bruges til, sige, sociologisk forskning, kan indeholde hundredvis til millioner af rækker, hver repræsenterer en individuel person, med variabler, der karakteriserer besættelse, løn, hjemsted, og svar på undersøgelsesspørgsmål. Probabilistiske modeller kunne bruges til at udfylde manglende variabler, såsom at forudsige nogens løn baseret på erhverv og placering, eller at identificere variabler, der informerer hinanden, såsom at finde ud af, at en persons alder og erhverv er forudsigende for deres løn.
Statistikere ser Bayesiansk modellering som en guldstandard for konstruktion af modeller ud fra data. Men Bayesiansk modellering er notorisk tidskrævende og udfordrende. Statistikere tager først et uddannet gæt på den nødvendige modelstruktur og parametre, stole på deres generelle viden om problemet og dataene. Ved hjælp af et statistisk programmeringsmiljø, såsom R, en statistiker bygger derefter modeller, passer til parametre, tjekker resultater, og gentager processen, indtil de finder en passende performance -afvejning, der vejer modellens kompleksitet og modelkvalitet.
Forskernes værktøj automatiserer en vigtig del af denne proces. "Vi giver et softwaresystem et job, du ville have en juniorstatistiker eller dataforsker til at udføre, "Mansinghka siger." Softwaren kan besvare spørgsmål automatisk fra dataene - forudsige forudsigelser eller fortælle dig, hvad strukturen er - og det kan gøre det strengt, rapportering af kvantitative målinger af usikkerhed. Dette niveau af automatisering og stringens er vigtigt, hvis vi forsøger at gøre datavidenskab mere tilgængelig. "
Bayesisk syntese
Med den nye tilgang, brugere skriver en kodelinje med detaljer om rådataets placering. Værktøjet indlæser disse data og opretter flere sandsynlige programmer, der hver repræsenterer en bayesisk model af dataene. Alle disse automatisk genererede modeller er skrevet på domænespecifikke sandsynlige programmeringssprog-kodningssprog udviklet til specifikke applikationer-der er optimeret til at repræsentere bayesiske modeller for en bestemt datatype.
Værktøjet fungerer ved hjælp af en modificeret version af en teknik kaldet "programsyntese, "som automatisk opretter computerprogrammer givet data og et sprog at arbejde inden for. Teknikken er dybest set computerprogrammering i omvendt:Givet et sæt input-output-eksempler, programsyntese arbejder sig baglæns, udfyldning af emnerne for at konstruere en algoritme, der producerer eksempeloutputene baseret på eksempelinputene.
Fremgangsmåden adskiller sig fra almindelig programsyntese på to måder. Først, værktøjet syntetiserer probabilistiske programmer, der repræsenterer bayesianske modeller for data, der henviser til, at traditionelle metoder producerer programmer, der slet ikke modellerer data. Sekund, værktøjet syntetiserer flere programmer samtidigt, mens traditionelle metoder kun producerer en ad gangen. Brugere kan vælge og vælge, hvilke modeller der passer bedst til deres applikation.
"Når systemet laver en model, det spytter et stykke kode skrevet på et af disse domænespecifikke sandsynlige programmeringssprog ... som folk kan forstå og fortolke, "Siger Mansinghka." F.eks. brugere kan kontrollere, om et datasæt i tidsserier som flymængde har sæsonvariationer ved blot at læse koden-i modsætning til black-box maskinlæring og statistikmetoder, hvor brugere skal stole på en models forudsigelser, men ikke kan læse den for at forstå dens struktur. "
Probabilistisk programmering er et voksende felt i skæringspunktet mellem programmeringssprog, kunstig intelligens, og statistik. Dette år, MIT var vært for den første internationale konference om sandsynlighedsprogrammering, der havde mere end 200 deltagere, herunder førende branchespillere inden for sandsynlig programmering som Microsoft, Uber, og Google.