Seuraava on syndikoitu alkaen Keskikokoinen varten Isällinen foorumi, vanhempien ja vaikuttajien yhteisö, jolla on oivalluksia työstä, perheestä ja elämästä. Jos haluat liittyä foorumiin, ota yhteyttä [email protected].
Kuukausi sitten yritin A/B-testaus nähdäksemme, kuinka erilaiset "hoidot" tai syöttöparametrit voivat johtaa kaksosidemme pidempään uneen – ja tietysti välityspalvelimen avulla meille. Tämän kautta huomasin, että unirytmit olivat melko vaihtelevia enkä löytänyt paljon, mikä korreloi voimakkaasti lisääntyneen unen kanssa. Ajan myötä he aloittivat enemmän itsestään luonnollisesti. Nyt kun he ovat kuitenkin saavuttaneet 4 kuukautta, he ovat aloittaneet ilmeisen yleisen, mutta harvoin käsitellyn unen regressiovaiheen. Tajusin jälleen kerran epätoivoisesti lisää unta. Olinko minä, kuten eräs edellisessä viestissä kommentoinut huomautti, "etsinkö löytää jotain riippumatta siitä, kuinka epätoivoisesti kaipaisin lisää unta?" Joo. Kyllä minä olin. Siksi käännyin toiseen tietojenkäsittelytekniikkaan, koneoppimiseen.
flickr / Matthew H.
Koneoppiminen on tietojenkäsittelytieteen ala, joka tarjoaa menetelmiä tietokoneiden tai ohjelmien "opettamiseen" antamatta niille erillisiä ohjeita. Normaalissa ohjelmoinnissa antaisin tietokoneelle joukon komentoja suoritettaviksi, heittäen sisään logiikkaa tehdä päätöksiä siitä, mitä tehdä syötteen perusteella, mutta ohjelma ei koskaan voisi poiketa näistä hyvin määritellyistä kiskot. Vaikka tämä kuvaus kuulostaa lähempänä Terminaattori kuin miltä se käytännössä näyttää, koneoppimisen avulla voidaan ottaa joukko "oppimistietoja" ja käyttää sitä ennusteiden tekemiseen. Vaikka siitä on tulossa yhä suositumpi teknologiateollisuudessa, sitä on enimmäkseen käytetty ostojen etsimiseen käyttäytyminen ja suositukset, tekoäly ja ehkä mielenkiintoisinta kuvien ja taiteen luokittelu ja tunnistaminen – suurelta osin Google. En löytänyt monia tapauksia, joissa sitä sovellettaisiin vanhemmuuteen.
Vaimoni kirjanpitotaustan ja A-tyypin persoonallisuuksien ansiosta meillä on yksityiskohtaiset tiedot poikien ruokinta- ja unikäyttäytymisestä. Muistatko tämän laskentataulukon?
Näiden tietojen avulla lähdin löytämään optimaalisen syöttöparametrien yhdistelmän, tässä tapauksessa tarkastelin vuonna kulutetun ruoan kokonaismäärää. päivä, viimeisen ruokinnan aika ja viimeisen ruokinnan määrä, jotta voidaan määrittää, mikä johtaisi pisimpään yöuneen pojat. Ja mikä parasta, saatoin antaa tietokoneen tehdä kovan työn. Lisäksi meillä oli kaksi kertaa enemmän tietoa näistä malleista, koska meillä ei tietenkään ole yksi vaan 2 poikaa.
flickr / Matthew Ephraim
Koneoppimiseen on saatavilla useita upeita kirjastoja eri ohjelmointikielillä. Vaikka käytän pääasiassa Javaa ja Javascriptiä työssäni, valitsin Python-kirjaston sklearnin, koska olet perehtynyt Pythoniin ja tämä vaikutti täydelliseltä sovellukselta joustavaan komentosarjaan Kieli. Tälle kirjastolle on olemassa monia hienoja opetusohjelmia ja myös hyvää dokumentaatiota.
Löydät koodini osoitteesta github jos kiinnostaa.
Viedessäni laskentataulukosta keräämiämme tietoja poimin vain viimeisen kuukauden tietopisteet. Vauvojen nopean kasvun ja kehityksen muutosten vuoksi minusta tuntui, että kuukauden tiedot – kertaa 2 vauvaa – olivat hyvä tasapaino viimeaikaisuuden ja riittävän ennusteen tekemiseen.
Laita se yhteen ja koodaa se
Sain myös mielenkiintoisia tilastoja, mukaan lukien se, että syötimme pojille keskimäärin 27,5 unssia per päivä, laitoin ne nukkumaan useimmiten klo 7.25, syötit heille 5,22 unssia ennen nukkumaanmenoa ja he nukkuivat 9 tuntia keskiverto. Kävi myös ilmi, että pojat nukkuivat yli 10 tuntia 75 prosenttia ajasta. Ei paha. Mutta tiesin, että voisimme parantaa tätä pienellä työllä.
Näiden tietojen avulla pystyin piirtämään kunkin parametrin nukkumisajan funktiona.
Voit nähdä, ettei useimpien näiden välillä ole vahvaa korrelaatiota, ainakaan lineaarista. Lähin on jokseenkin lineaarinen – paljon poikkeavuuksia sisältävä – suhde kokonaisruoan ja unituntien välillä. Kummallista, että enemmän ruokaa näyttää vähentävän unta.
flickr / hegbar
Koneoppimisalgoritmeja on monia erilaisia. Nämä luokitellaan suurelta osin lineaarisiin ja epälineaarisiin tyyppeihin. Otin tiedot ja suoritin ne kuuden melko laajalti käytetyn algoritmin läpi nähdäkseni kuinka tarkkoja kukin niistä voisi olla. Tässä tulokset.
Tai kuvallisemmassa muodossa
Täältä näet, että Support Vector Machine -algo suoriutui selvästi parhaiten dataa vastaan, vaikka valikoima on erittäin laaja ja keskiarvo ei ole paljon parempi kuin muut. Yksikään ei ole edes 50 prosentissa, mikä on melko huono ennustaa. Tämä johtuu täysin tietojen näennäissatunnaisesta luonteesta. Jopa tällaisilla tuloksilla päätin edetä, toivoen saavani näkemystä ollenkaan.
SVM: n avulla harjoittelin algoritmia syötetietojen perusteella. Tämän avulla pystyin nyt ennustamaan, kuinka paljon unta saisimme sen perusteella, kuinka paljon ruokaa otettiin vuorokaudessa, milloin laitoimme ne nukkumaan ja kuinka paljon ruokimme heille viimeisen ruokinnan yhteydessä. Esimerkiksi, jos heille annetaan 28 unssia, laitetaan nukkumaan kello 7 ja annatte 6 unssia viimeisen ruokinnan yhteydessä, johtaisi melko huonoon 8 tunnin uneen.
Johtopäätökset
Nyt harjoitellun algoritmin avulla voin ennustaa melko varmasti, kuinka paljon unta saisimme. Vielä tärkeämpää on, että voisin tarkastella näiden trendilinjoja ja nähdä, minkälainen käyttäytyminen johti uneen lisäämiseen pyrkiessäni optimoimaan. Vastakohtaisesti nukkumaanmeno aikaisemmin, vähemmän ruokaa silloin ja koko päivän aikana itse asiassa lisäsi unta. Tämä johtuu todennäköisesti monista tekijöistä, mutta teoriani on, että vähemmän ruokaa tarkoittaa vähemmän kaasua, vähemmän mahalaukun kutistumista nälkäisenä ja siten levollisempaa unta. Kuinka monta kertaa olet sikautunut ja sitten oudosti herännyt keskellä yötä nälkään?
flickr / Dion Hinchcliffe
Valitettavasti, aivan kuten A/B-testauksessa, kenelläkään yksittäisellä syötteellä ei näytä olevan vahvaa suoraa vaikutusta uneen. Luulen, että jos niin olisi, joku olisi jo löytänyt sen ja ansaitsisi miljoonia. Yhdessä koneoppiminen voi löytää joitain näistä trendeistä ja muuttujien välisistä assosiaatioista, mikä johtaa parempiin ja tarkempiin tuloksiin kuin A/B-testaus tai yritys ja erehdys, mutta tulokset ovat silti kaukana loistavista. Näistä tiedoista voisin saada korkeintaan 41 prosentin ennusteiden tarkkuuden. Tämä tarkoittaa useammin kuin ei, he ovat väärässä. Toistuvien kehitysmuutosten ja jopa poikien välisten erojen vuoksi dataa on vaikea soveltaa heidän kesken. Jälleen suurempi otoskoko saattaa auttaa, mutta emme tavoittele kolmosia lähiaikoina.
Nämä tulokset ovat kuitenkin parempia kuin ei mitään ja auttavat osoittamaan koneoppimisen ja datatieteen alan lupauksen. Teen päätökset mieluummin datan perusteella kuin sisäistä tunteita, ja nämä tiedot jopa vahvistavat joitain arvauksiani saavat minut tuntemaan paremmin vanhemmuuteen liittyvää lähestymistapaamme.
Tyler Lund on toimittaja Isä juoksemassa.