Tai buvo sindikuota iš Vidutinis dėl Tėviškas forumas, tėvų ir influencerių bendruomenė, turinti įžvalgų apie darbą, šeimą ir gyvenimą. Jei norite prisijungti prie forumo, parašykite mums el [email protected].
Prieš mėnesį pabandžiau A/B testavimas norėdami pamatyti, kaip skirtingi „gydymai“ ar įvesties parametrai gali lemti ilgesnį mūsų dvynių – ir, žinoma, pagal įgaliotąjį – mūsų miegą. Taip išsiaiškinau, kad miego įpročiai buvo gana nepastovūs ir neradau nieko, kas būtų stipriai susiję su padidėjusiu miegu. Laikui bėgant, jie pradėjo natūraliai savarankiškai. Tačiau dabar, kai jiems suėjo 4 mėnesiai, jie pradėjo akivaizdžiai įprastą, bet retai aptariamą miego regresijos fazę. Aš vėl labai trokštu daugiau miego. Ar aš, kaip pabrėžė vienas komentaras ankstesniame įraše, „norėjau ką nors rasti, kad ir kaip norėjau daugiau miegoti“? Taip. Taip aš buvau. Todėl kreipiausi į kitą informatikos techniką – mašininį mokymąsi.
flickr / Matthew H.
Mašinų mokymasis yra kompiuterių mokslo sritis, kurioje pateikiami kompiuterių ar programų „mokymo“ metodai, neduodant jiems atskirų nurodymų. Įprastu programavimu aš duočiau kompiuteriui vykdyti komandų seką, įvesdamas logiką nuspręsti, ką daryti, remdamasi įvestimi, tačiau programa niekada negalėtų to padaryti bėgiai. Nors šis aprašymas skamba arčiau
Dėl mano žmonos buhalterinės patirties ir mūsų A tipo asmenybių turime išsamius įrašus apie berniukų šėrimą ir elgesį miego metu. Prisimeni šią skaičiuoklę?
Naudodamasis šiais duomenimis nusprendžiau rasti optimalų įvesties parametrų derinį, šiuo atveju pažvelgiau į bendrą suvartotą maistą diena, paskutinio maitinimo laikas ir paskutinio šėrimo kiekis, siekiant nustatyti, kas lemtų ilgiausią nakties miegą berniukai. Ir kas geriausia, galėjau leisti kompiuteriui atlikti sunkų darbą. Be to, mes turėjome dvigubai daugiau duomenų apie šiuos modelius, nes, žinoma, turime ne vieną, o 2 berniukus.
flickr / Matthew Ephraim
Yra keletas puikių bibliotekų, skirtų mašininiam mokymuisi įvairiose programavimo kalbose. Nors darbe daugiausia naudoju Java ir Javascript, pasirinkau Python biblioteką sklearn, nes esate susipažinę su Python ir tai atrodė puiki programa lanksčiam scenarijui kalba. Yra daug puikių šios bibliotekos vadovėlių ir geros dokumentacijos.
Mano kodą galite rasti github jei domina.
Eksportuodamas duomenis, kuriuos surinkome iš skaičiuoklės, ištraukiau tik praėjusio mėnesio duomenų taškus. Dėl spartaus kūdikių augimo ir vystymosi pokyčių, aš maniau, kad vieno mėnesio duomenys (kartu 2 kūdikiai) buvo geras naujausio amžiaus ir pakankamai duomenų, kad būtų galima prognozuoti, pusiausvyra.
Sudėti kartu ir užkoduoti
Taip pat gavau įdomių statistinių duomenų, įskaitant tai, kad mes berniukus maitinome vidutiniškai 27,5 uncijos per dieną paguldydavo juos miegoti 7.25 val., prieš miegą maitindavo 5,22 uncijos ir miegodavo 9 valandas. vidutinis. Taip pat paaiškėjo, kad berniukai miegojo daugiau nei 10 valandų 75 procentus laiko. Neblogai. Tačiau žinojau, kad įdėję daugiau pastangų galėtume tai pagerinti.
Naudodamas šiuos duomenis, galėjau nubraižyti kiekvieną parametrą pagal miego laiką.
Matote, kad jau nėra stiprios koreliacijos, bent jau tiesinės tarp daugelio jų. Artimiausias yra šiek tiek linijinis – su daugybe nuokrypių – santykis tarp viso maisto ir miego valandų. Keista, atrodo, kad daugiau maisto sukelia mažiau miego.
flickr / hegbar
Yra daug skirtingų mašininio mokymosi algoritmų tipų. Jie daugiausia skirstomi į linijinius ir nelinijinius tipus. Paėmiau duomenis ir paleidau juos per 6 gana plačiai naudojamus algoritmus, kad pamatyčiau, koks tikslus kiekvienas gali būti. Štai rezultatai.
Arba labiau piktografine forma
Čia galite pamatyti, kad „Support Vector Machine“ algoritmas aiškiai veikia geriausiai, palyginti su duomenimis, nors diapazonas yra labai platus, o vidurkis nėra daug geresnis nei kitų. Nė vienas neturi net 50 procentų, o tai yra gana prasta prognozuoti. Taip yra dėl pseudoatsitiktinio duomenų pobūdžio. Net ir turėdamas tokius rezultatus, nusprendžiau žengti pirmyn, tikėdamasis išvis išvysti bet kokią įžvalgą.
Naudodamas SVM apmokiau įvesties duomenų algoritmą. Naudodamas tai, dabar galėčiau nuspėti, kiek miegosime pagal per dieną suvalgyto maisto kiekį, kada paguldėme juos miegoti ir kiek maitinome paskutinio maitinimo metu. Pavyzdžiui, duodant jiems 28 uncijas, paguldius į lovą 7 val. ir davus 6 uncijas paskutinio maitinimo metu, 8 valandos miegotų gana prastai.
Išvados
Turėdamas dabar parengtą algoritmą, galėjau tikrai nuspėti, kiek miegosime. Dar svarbiau, kad galėčiau pažvelgti į šių tendencijų linijas ir pamatyti, koks elgesys paskatino daugiau miegoti, kad būtų galima optimizuoti. Priešingai, einant miegoti anksčiau, valgant mažiau ir visą dieną miegas padidėjo. Tikėtina, kad taip yra dėl daugelio veiksnių, bet mano teorija teigia, kad mažiau maisto reiškia mažiau dujų, mažiau susitraukia skrandis, kai esi alkanas, taigi ir ramesnis miegas. Kiek kartų buvote atsipalaidavę, o paskui keistai pabudote vidury nakties išalkę?
flickr / Dion Hinchcliffe
Deja, kaip ir atliekant A/B testavimą, atrodo, kad jokia individuali įvestis neturi stiprios tiesioginės įtakos miegui. Manau, jei taip būtų, kas nors jau būtų jį atradęs ir uždirbtų milijonus. Apibendrinant, mašininis mokymasis gali rasti kai kurias iš šių tendencijų ir kintamųjų sąsajų, o tai lemia geresnių, tikslesnių rezultatų nei A/B testavimas arba bandymas ir klaida, tačiau rezultatai vis dar toli gražu nėra puikūs. Iš šių duomenų galėčiau gauti daugiausia 41 procento prognozių tikslumą. Tai reiškia, kad dažniausiai jie klysta. Dėl dažnų vystymosi pokyčių ir net skirtumų tarp berniukų sunku pritaikyti duomenis tarp jų. Vėlgi, didesnis imties dydis gali padėti, bet mes artimiausiu metu nesiekiame trynukų.
Vis dėlto šie rezultatai yra geriau nei nieko ir padeda parodyti mašininio mokymosi ir duomenų mokslo srities pažadą. Aš norėčiau priimti sprendimus remdamasis duomenimis, o ne nuojautomis, o šie duomenys netgi patvirtina kai kuriuos mano spėjimus, verčia mane geriau jaustis dėl mūsų auklėjimo požiūrio.
Taileris Lundas yra redaktorius Tėtis bėga.