Sljedeće je sindicirano iz Srednji za Očinski forum, zajednica roditelja i utjecajnih osoba sa uvidima o poslu, obitelji i životu. Ako se želite pridružiti forumu, javite nam se na [email protected].
Prije mjesec dana sam pokušao A/B testiranje da vidimo kako različiti "tretmani" ili ulazni parametri mogu rezultirati duljim spavanjem za naše blizance - i naravno putem proxyja, nas. Na taj sam način otkrio da su obrasci spavanja prilično nepravilni i da nisam otkrio mnogo toga što bi snažno koreliralo s povećanim snom. Kako je vrijeme prolazilo, počeli su sve više sami od sebe. Međutim, sada kada su navršili 4 mjeseca, započeli su naizgled uobičajenu, ali rijetko razmatranu fazu regresije sna. Opet sam se našao očajnički za više sna. Jesam li, kao što je netko komentirao prethodni post, "tražio pronaći bilo što bez obzira koliko očajnički tražio više sna?" Da. Da bio sam. Stoga sam se okrenuo drugoj informatičkoj tehnici, strojnom učenju.
flickr / Matthew H.
Strojno učenje je područje unutar računalne znanosti koje pruža metode za "poučavanje" računala ili programa bez davanja diskretnih instrukcija. U normalnom programiranju, dao bih računalu niz naredbi koje treba izvršiti, ubacujući logiku donijeti odluke o tome što učiniti na temelju unosa, ali program nikada ne bi mogao odstupiti od dobro definiranih tračnice. Iako ovaj opis zvuči bliže
Zahvaljujući računovodstvu moje supruge i našoj osobnosti tipa A, imamo detaljne zapise o ponašanju dječaka u hranjenju i spavanju. Sjećate li se ove proračunske tablice?
Koristeći ove podatke, krenuo sam u pronalaženje optimalne kombinacije ulaznih parametara, u ovom slučaju gledao sam ukupno konzumiranu hranu u dan, vrijeme posljednjeg hranjenja i količina posljednjeg hranjenja, kako bi se odredilo što bi rezultiralo najdužim noćnim snom za dječaci. A najbolje od svega mogao sam pustiti računalo da radi težak posao. Osim toga, imali smo duplo više podataka o tim obrascima jer naravno imamo ne jednog nego 2 dječaka.
flickr / Matthew Ephraim
Postoji nekoliko sjajnih knjižnica za strojno učenje koje su dostupne u svim programskim jezicima. Iako prvenstveno koristim Javu i Javascript za posao, izabrao sam Python biblioteku sklearn, jer sam upoznati s Pythonom i ovo se činilo savršenom aplikacijom za fleksibilno skriptiranje Jezik. Postoji mnogo sjajnih tutorijala za ovu knjižnicu i dobre dokumentacije.
Moj kod možete pronaći na github ako ste zainteresirani.
Izvozeći podatke koje smo prikupili iz proračunske tablice, izdvojio sam podatke za samo prošli mjesec. Zbog brzog rasta i razvojnih promjena kroz koje dojenčad prolaze, smatrao sam da su podaci za mjesec dana - puta 2 novorođenčadi - dobra ravnoteža nedavnosti i dovoljno podataka za predviđanje.
Spajanje i kodiranje
Također sam dobio neke zanimljive statistike uključujući da smo u prosjeku hranili dečke 27,5 oz po dan, stavljao ih u krevet najčešće u 7:25, hranio ih s 5,22 oz prije spavanja, a spavali su 9 sati na prosjek. Također se pokazalo da su dječaci 75 posto vremena spavali preko 10 sati. Nije loše. Ali znao sam da bismo uz još malo rada to mogli poboljšati.
Koristeći ove podatke, uspio sam nacrtati svaki parametar u odnosu na vrijeme mirovanja.
Možete vidjeti da već ne postoji jaka korelacija, barem linearna između većine ovih. Najbliži je donekle linearan - s puno odstupanja - odnos između ukupne hrane i sati sna. Začudo, čini se da više hrane rezultira manje sna.
flickr / hegbar
Postoji mnogo različitih vrsta algoritama strojnog učenja. One se uglavnom dijele na linearne i nelinearne tipove. Uzeo sam podatke i prošao ih kroz 6 prilično široko korištenih algoritama da vidim koliko bi svaki mogao biti točan. Evo rezultata.
Ili u više piktografskom obliku
Ovdje možete vidjeti da se algo Support Vector Machine jasno pokazao najboljim u odnosu na podatke, iako je raspon vrlo širok, a srednja vrijednost nije puno bolja od ostalih. Nijedna nije čak ni na 50 posto, što je prilično loše za predviđanje. To je u potpunosti zbog pseudo-slučajne prirode podataka. Čak i s takvim rezultatima, odlučio sam ići naprijed, nadajući se da ću uopće dobiti bilo kakav uvid.
Koristeći SVM, trenirao sam algoritam na ulaznim podacima. Koristeći to, sada sam mogao predvidjeti koliko ćemo spavati na temelju količine hrane koju smo uzimali u danu, kada smo ih stavili u krevet i koliko smo ih nahranili pri posljednjem hranjenju. Na primjer, davanje im 28 unci, stavljanje u krevet u 7 i davanje 6 unci na posljednjem hranjenju rezultiralo bi prilično lošim 8 sati sna.
Zaključci
S sada uvježbanim algoritmom mogao sam s određenom sigurnošću predvidjeti koliko ćemo spavati. Što je još važnije, mogao sam pogledati linije trenda za njih i vidjeti koja je vrsta ponašanja dovela do više sna u pokušaju optimizacije. Kontraintuitivno, ranije odlazak u krevet, s manje hrane tada i tijekom dana zapravo je povećao san. To je vjerojatno zbog mnogih čimbenika, ali moja teorija je da manje hrane znači manje plinova, manje skupljanje želuca kada smo gladni, a time i mirniji san. Koliko ste puta izgladnjeli, a zatim se bizarno probudili usred noći?
flickr / Dion Hinchcliffe
Nažalost, baš kao i kod A/B testiranja, čini se da niti jedan pojedinačni unos nema snažan izravan utjecaj na spavanje. Pretpostavljam da bi netko to već otkrio da jest i zaradio bi milijune. Uzeto zajedno, strojno učenje može pronaći neke od ovih trendova i povezanosti između varijabli, što vodi na bolje, točnije rezultate od A/B testiranja ili pokušaja i pogrešaka, ali rezultati su još uvijek daleko od sjajnih. Iz ovih podataka najviše bih mogao dobiti stopu točnosti predviđanja od 41 posto. To znači da su češće u krivu. Zbog čestih promjena u razvoju, pa čak i razlika među dječacima, teško je primijeniti podatke na njih. Opet, veća veličina uzorka bi mogla pomoći, ali nećemo uskoro ciljati na trojke.
Ipak, ovi rezultati su bolji od ništa i pomažu pokazati obećanje područja strojnog učenja i znanosti o podacima. Ja, na primjer, radije donosim odluke na temelju podataka, a ne osjećaja, a ovi podaci čak i samo potvrđujući neka od mojih nagađanja čine da se osjećam bolje o našem roditeljskom pristupu.
Tyler Lund je urednik Tata u bijegu.