Följande syndikerades från Medium för Det faderliga forumet, en gemenskap av föräldrar och influencers med insikter om arbete, familj och liv. Om du vill gå med i forumet, skriv till oss på [email protected].
För en månad sedan försökte jag A/B-testning för att se hur olika "behandlingar" eller ingångsparametrar kan resultera i längre sömn för våra tvillingar - och naturligtvis genom proxy, oss. Genom detta upptäckte jag att sömnmönster var ganska oberäkneliga och hittade inte mycket som korrelerade starkt med ökad sömn. Allt eftersom började de mer och mer på egen hand naturligt. Men nu när de har nått fyra månader har de börjat den till synes vanliga men sällan diskuterade sömnregressionsfasen. Jag fann mig återigen desperat efter mer sömn. Var jag, som en kommenterade i förra inlägget påpekade, "sökte jag hitta något oavsett hur desperat efter mer sömn?" Ja. Ja det var jag. Därför vände jag mig till en annan datavetenskaplig teknik, maskininlärning.
flickr / Matthew H.
Maskininlärning är ett område inom datavetenskap som tillhandahåller metoder för att ”lära ut” datorer eller program utan att ge dem diskreta instruktioner. I normal programmering skulle jag ge datorn en sekvens av kommandon att köra, kasta in logik till göra beslut om vad som ska göras baserat på input, men programmet kunde aldrig gå ifrån dessa väldefinierade skenor. Även om denna beskrivning låter närmare
Tack vare min frus redovisningsbakgrund och vår typ A-personlighet har vi detaljerade uppgifter om matning och sömnbeteende för pojkarna. Kommer du ihåg det här kalkylarket?
Med hjälp av dessa data satte jag mig för att hitta den optimala kombinationen av ingångsparametrar, i det här fallet tittade jag på total mat som konsumeras i dagen, tidpunkten för senaste utfodring och mängden senaste utfodringen för att bestämma vad som skulle resultera i den längsta nattsömnen för Pojkar. Och bäst av allt kunde jag låta datorn göra det hårda arbetet. Dessutom hade vi dubbelt så mycket data om dessa mönster eftersom vi naturligtvis inte har en utan 2 pojkar.
flickr / Matthew Ephraim
Det finns flera fantastiska bibliotek för maskininlärning tillgängliga för alla programmeringsspråk. Även om jag främst använder Java och Javascript för jobbet, valde jag Python-biblioteket sklearn, eftersom jag har bekantskap med Python och detta verkade vara den perfekta applikationen för flexibla skript språk. Det finns många bra tutorials där ute för det här biblioteket och bra dokumentation också.
Du hittar min kod på github Om intresserad.
När jag exporterade data vi samlade in från kalkylarket extraherade jag bara den senaste månadens datapunkter. På grund av den snabba tillväxten och utvecklingsförändringarna som spädbarn går igenom, kände jag att en månads data – gånger 2 spädbarn – var en bra balans mellan senaste nytt och tillräckligt med data för att göra en förutsägelse.
Att sätta ihop det och koda det
Jag fick också en del statistik som var intressant inklusive att vi i snitt matade pojkarna 27,5 oz per dag, la dem oftast kl. 07.25, matade dem 5,22 oz vid sänggåendet och de sov 9 timmar på genomsnitt. Det visade sig också att pojkarna sov över 10 timmar 75 procent av tiden. Inte så dåligt. Men jag visste att vi kunde förbättra detta med lite mer arbete.
Med hjälp av dessa data kunde jag plotta varje parameter mot sömntiden.
Du kan se att det redan inte finns en stark korrelation, åtminstone linjär mellan de flesta av dessa. Det närmaste är det något linjära - med många extremvärden - förhållandet mellan total mat och timmars sömn. Konstigt nog verkar mer mat resultera i mindre sömn.
flickr / hegbar
Det finns många olika typer av maskininlärningsalgoritmer. Dessa klassificeras till stor del i linjära och icke-linjära typer. Jag tog data och körde den genom 6 ganska allmänt använda algoritmer för att se hur exakt var och en kunde bli. Här är resultaten.
Eller i en mer bildgrafisk form
Här kan du se att supportvektormaskinen presterade klart bäst mot data, även om intervallet är mycket brett och medelvärdet inte är mycket bättre än de andra. Ingen är ens på 50 procent vilket är ganska dåligt att förutsäga. Detta beror helt och hållet på datas pseudo-slumpmässiga natur. Även med sådana resultat bestämde jag mig för att gå vidare i hopp om att få någon insikt överhuvudtaget.
Med SVM tränade jag algoritmen på indata. Med hjälp av detta kunde jag nu förutsäga hur mycket sömn vi skulle få baserat på mängden mat som togs på en dag, när vi lade dem och hur mycket vi matade dem vid den senaste matningen. Till exempel att ge dem 28 uns, lägga dem vid 7 och ge 6 uns vid den sista matningen skulle resultera i ganska dåliga 8 timmars sömn.
Slutsatser
Med den nu tränade algoritmen kunde jag med viss säkerhet förutsäga hur mycket sömn vi skulle få. Ännu viktigare, jag kunde titta på trendlinjerna för dessa och se vilken typ av beteende som ledde till mer sömn i ett försök att optimera. Kontrastmässigt ökade faktiskt sömnen att gå och lägga sig tidigare, med mindre mat då och under hela dagen. Detta beror sannolikt på många faktorer men min teori är att mindre mat betyder mindre gas, mindre mage krymper när man är hungrig och därför mer vilsam sömn. Hur många gånger har du piggat ut och sedan konstigt nog vaknat mitt i natten och svälter?
flickr / Dion Hinchcliffe
Tyvärr, precis som med A/B-testningen, verkar ingen enskild ingång ha en stark direkt input på sömnen. Jag antar att om det gjorde det skulle någon redan ha upptäckt det och skulle tjäna miljoner. Sammantaget kan maskininlärning hitta några av dessa trender och samband mellan variabler, vilket leder till bättre, mer exakta resultat än A/B-testning eller trial and error, men resultaten är fortfarande långt ifrån bra. Från dessa data kunde jag på sin höjd få en 41-procentig noggrannhet av förutsägelser. Det betyder att de oftare har fel. På grund av de frekventa förändringarna i utvecklingen och till och med skillnaderna mellan pojkarna är det svårt att tillämpa data över dem. Återigen, en större provstorlek kan hjälpa, men vi siktar inte på trillingar när som helst snart.
Ändå är dessa resultat bättre än ingenting och hjälper till att demonstrera löftet inom området maskininlärning och datavetenskap. Jag föredrar att fatta beslut utifrån data framför magkänslor och dessa data bekräftar till och med bara några av mina gissningar gör att jag mår bättre av vårt föräldraskapssätt.
Tyler Lund är redaktör för Pappa på flykt.