Använder Data Science för att förbättra mina tvillingars sömn

click fraud protection

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.

tvillingar-och-far

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

Terminator än vad det faktiskt ser ut i praktiken tillåter maskininlärning en att ta en uppsättning "inlärnings"-data och använda den som grund för att göra förutsägelser. Även om det blir allt mer populärt inom teknikindustrin, har det mestadels använts för att titta på inköp beteende och rekommendationer, AI, och kanske mest intressant, att kategorisera och identifiera bilder och konst — till stor del genom Google. Jag kunde inte hitta många fall av att det tillämpades på föräldraskap.

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.

Javascript

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.

tvillingpojkar-sover

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?

tvillingar-sover-2-

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.

Kinder: Är den här nya babynamnsappen idiotisk eller briljant?

Kinder: Är den här nya babynamnsappen idiotisk eller briljant?Miscellanea

Att välja bebisnamn är en kamp. På många sätt är det det första stora beslutet som föräldrar kommer att fatta för sina barn, och för att inte tala om, med all sannolikhet, det är ett permanent val....

Läs mer
Fox Business Bulletproof Backpacks: Rage Over Tone-Deaf TV-segment

Fox Business Bulletproof Backpacks: Rage Over Tone-Deaf TV-segmentMiscellanea

TV-nyhetssegmentet, Fox Business, möter intensiv kritik efter att ha sänt ett segment där programledaren Maria Bartiromo hyllade flera "fashion forward" skottsäkra ryggsäckar som en del av shopping...

Läs mer
Restaurang i Tyskland får motreaktioner för att förbjuda barn efter 17:00

Restaurang i Tyskland får motreaktioner för att förbjuda barn efter 17:00Miscellanea

En restaurang i Tyskland möter hård kritik för sitt kontroversiella beslut att förbjuda barn efter klockan 17.00. Rudolf Markl, ägare till Oma's Küche i Köln, sa att han tog beslutet efter att fler...

Läs mer