Järgnev sündikaati alates Keskmine jaoks Isade foorum, vanemate ja mõjutajate kogukond, kellel on ülevaade tööst, perekonnast ja elust. Kui soovid foorumiga liituda, siis kirjuta meile [email protected].
Kuu aega tagasi proovisin A/B testimine et näha, kuidas erinevad "ravi" või sisendparameetrid võivad kaasa tuua meie kaksikute pikema une – ja loomulikult puhverserveri kaudu ka meie. Selle kaudu avastasin, et unemustrid olid üsna ebaühtlased ja ei leidnud palju, mis oleks tihedalt seotud suurenenud unega. Mida aeg edasi, seda enam alustasid nad loomulikult iseseisvalt. Kuid nüüd, kui nad on saanud 4 kuu vanuseks, on nad alustanud ilmselt levinud, kuid harva arutatud une regressioonifaasi. Taaskord leidsin end meeleheitlikult rohkem magada. Kas ma, nagu üks eelmise postituse kommenteerija märkis, "otstsin midagi leida, hoolimata sellest, kui meeleheitlikult rohkem magada tahan?" Jah. Jah, ma olin. Seetõttu pöördusin teise arvutiteaduse tehnika, masinõppe poole.
flickr / Matthew H.
Masinõpe on arvutiteaduse valdkond, mis pakub meetodeid arvutite või programmide "õpetamiseks" ilma neile diskreetseid juhiseid andmata. Tavalises programmeerimises annaksin arvutile täitmiseks käskude jada, lisades loogika tehke sisendi põhjal otsused, mida teha, kuid programm ei saa kunagi nendest täpselt määratletud tingimustest kõrvale kalduda rööpad. Kuigi see kirjeldus kõlab lähemale
Tänu mu naise raamatupidamistaustale ja meie A-tüüpi isiksustele on meil üksikasjalikud andmed poiste toitumise ja une käitumise kohta. Kas mäletate seda arvutustabelit?
Neid andmeid kasutades püüdsin leida sisendparameetrite optimaalset kombinatsiooni, antud juhul vaatasin kogu aastal tarbitud toitu. päev, viimase söötmise aeg ja viimase söötmise kogus, et teha kindlaks, mille tulemuseks oleks pikim ööuni poisid. Ja mis kõige parem, sain lasta arvutil raske töö ära teha. Lisaks oli meil nende mustrite kohta kaks korda rohkem andmeid, sest meil pole loomulikult mitte üks, vaid kaks poissi.
flickr / Matthew Ephraim
Programmeerimiskeelte jaoks on saadaval mitu suurepärast masinõppe teeki. Kuigi kasutan tööks peamiselt Java ja Javascripti, valisin Pythoni teegi sklearn, kuna tunnete Pythonit ja see tundus paindliku skriptimise jaoks ideaalne rakendus keel. Selle raamatukogu jaoks on palju suurepäraseid õpetusi ja ka head dokumentatsiooni.
Minu koodi leiate aadressilt github kui huvitab.
Arvutustabelist kogutud andmete eksportimisel eraldasin viimase kuu andmepunktid. Imikute kiire kasvu ja arengumuutuste tõttu tundsin, et ühe kuu andmed – korda 2 imikute arvu – on hea tasakaal hiljutise ja prognoosi tegemiseks piisavalt andmete vahel.
Selle kokku panemine ja kodeerimine
Sain ka huvitavat statistikat, sealhulgas see, et söötsime poisse keskmiselt 27,5 untsi päeval, pange nad magama kõige sagedamini kell 7:25, andsid neile enne magamaminekut 5,22 untsi ja nad magasid 9 tundi. keskmine. Samuti selgus, et poisid magasid 75 protsenti ajast üle 10 tunni. Mitte väga halb. Kuid ma teadsin, et me saame seda parandada, tehes rohkem tööd.
Neid andmeid kasutades sain iga parameetri joonistada uneaja suhtes.
Näete, et enamiku nende vahel ei ole juba tugevat korrelatsiooni, vähemalt lineaarset. Lähim on mõnevõrra lineaarne – paljude kõrvalekalletega – seos kogutoidu ja unetundide vahel. Kummalisel kombel tundub, et rohkem toitu põhjustab vähem und.
flickr / hegbar
Masinõppe algoritme on palju erinevaid. Need jagunevad suures osas lineaarseteks ja mittelineaarseteks tüüpideks. Võtsin andmed ja jooksin need läbi 6 üsna laialdaselt kasutatud algoritmi, et näha, kui täpseks igaüks neist võiks saada. Siin on tulemused.
Või siis piltograafilisemal kujul
Siin näete, et Support Vector Machine algo toimis andmetega selgelt kõige paremini, kuigi vahemik on väga lai ja keskmine pole teistest palju parem. Ükski neist pole isegi 50 protsendi juures, mis on ennustamiseks üsna kehv. See on täielikult tingitud andmete pseudojuhuslikkusest. Isegi selliste tulemuste korral otsustasin edasi liikuda, lootes, et saan üldse mingit ülevaadet.
SVM-i abil treenisin algoritmi sisendandmete põhjal. Seda kasutades võin nüüd ennustada, kui palju und me saame, võttes aluseks päevas söödud toidukoguse, millal nad magama panime ja kui palju me neile viimasel toitmisel söötsime. Näiteks 28 untsi andmine, kell 7 magama panemine ja viimasel toitmisel 6 untsi andmine tooks kaasa üsna kehva 8-tunnise une.
Järeldused
Nüüd treenitud algoritmiga võisin üsna kindlalt ennustada, kui palju und me saame. Veelgi olulisem on see, et saaksin vaadata nende trendijooni ja näha, mis tüüpi käitumine viis optimeerimise eesmärgil rohkem und. Vastupidiselt sellele suurendas varem magama minek, vähema toiduga ja kogu päeva und. See on tõenäoliselt tingitud paljudest teguritest, kuid minu teooria kohaselt tähendab vähem toitu, vähem gaase, vähem näljase mao kokkutõmbumist ja seega kosutavamat und. Mitu korda olete end välja ajanud ja siis veidral kombel keset ööd nälginud üles ärganud?
flickr / Dion Hinchcliffe
Kahjuks, nagu ka A/B testimise puhul, ei näi ühelgi üksikul sisendil unerežiimile tugevat otsest sisendit. Kui see juhtuks, oleks keegi selle juba avastanud ja teeniks miljoneid. Kokkuvõttes võib masinõpe leida mõningaid neist suundumustest ja muutujate vahelisi seoseid, mis viib paremate ja täpsemate tulemusteni kui A/B testimine või katse-eksituse meetod, kuid tulemused on ikka veel kaugeltki suurepärased. Nende andmete põhjal võin saada ennustuste täpsuse 41 protsenti. See tähendab, et enamasti nad eksivad. Sagedaste arengumuutuste ja isegi poistevaheliste erinevuste tõttu on raske andmeid nende vahel rakendada. Jällegi võib suurem valimi suurus aidata, kuid me ei sihi niipea kolmikuid.
Siiski on need tulemused paremad kui mitte midagi ja aitavad näidata masinõppe ja andmeteaduse valdkonna lubadust. Mina eelistan teha otsuseid andmete põhjal, mitte kõhutunde põhjal ja need andmed, mis isegi kinnitavad mõningaid minu oletusi, panevad mind meie lapsevanemaks saamise lähenemisviisi osas paremini tundma.
Tyler Lund on toimetaja Isa jooksmas.