O seguinte foi distribuído de Médio para The Fatherly Forum, uma comunidade de pais e influenciadores com ideias sobre trabalho, família e vida. Se você gostaria de participar do fórum, escreva para nós em [email protected].
Um mês atrás, eu tentei Teste A / B para ver como diferentes “tratamentos” ou parâmetros de entrada podem resultar em um sono mais longo para nossos gêmeos - e, claro, por procuração, para nós. Com isso, descobri que os padrões de sono eram bastante erráticos e não encontrei muito que se correlacionasse fortemente com o aumento do sono. Com o passar do tempo, eles começaram mais por conta própria, naturalmente. No entanto, agora que chegaram aos 4 meses, eles começaram a fase de regressão do sono aparentemente comum, mas raramente discutida. Mais uma vez, me encontrei desesperado por mais sono. Eu estava, como comentou no post anterior, "procurando encontrar algo, não importa o quão desesperado para dormir mais?" sim. Sim, eu estava. Por isso, mudei para outra técnica de ciência da computação, o aprendizado de máquina.
flickr / Matthew H.
O aprendizado de máquina é um campo dentro da ciência da computação que fornece métodos para “ensinar” computadores ou programas sem fornecer instruções discretas. Na programação normal, eu daria ao computador uma sequência de comandos para executar, jogando a lógica para fazer determinações sobre o que fazer com base na entrada, mas o programa nunca poderia sair dessas trilhos. Embora esta descrição pareça mais próxima do o Exterminador do Futuro do que o que realmente parece na prática, o aprendizado de máquina permite pegar um conjunto de dados de "aprendizado" e usá-los como base para fazer previsões. Embora esteja se tornando cada vez mais popular na indústria de tecnologia, tem sido usado principalmente para olhar para a compra comportamento e recomendações, IA e, talvez o mais interessante, categorizar e identificar imagens e arte - principalmente por Google. Não consegui encontrar muitos exemplos disso sendo aplicado aos pais.
Graças ao histórico de contabilidade de minha esposa e nossas personalidades tipo A, temos registros detalhados sobre alimentação e comportamento de sono para os meninos. Lembra desta planilha?
Usando esses dados, comecei a encontrar a combinação ideal de parâmetros de entrada, neste caso, olhei para o total de alimentos consumidos em o dia, a hora da última alimentação e a quantidade da última alimentação, para determinar o que resultaria no sono noturno mais longo para o Rapazes. E o melhor de tudo é que eu poderia deixar o computador fazer o trabalho pesado. Além disso, tínhamos o dobro de dados sobre esses padrões porque é claro que não temos um, mas 2 meninos.
flickr / Matthew Ephraim
Existem várias bibliotecas excelentes para aprendizado de máquina disponíveis em linguagens de programação. Embora eu use principalmente Java e Javascript para trabalhar, escolhi a biblioteca Python sklearn, pois ter familiaridade com Python e este parecia ser o aplicativo perfeito para o script flexível língua. Existem muitos tutoriais excelentes para esta biblioteca e também uma boa documentação.
Você pode encontrar meu código em github se estiver interessado.
Exportando os dados que coletamos da planilha, extraí apenas os pontos de dados do mês anterior. Por causa do rápido crescimento e mudanças de desenvolvimento pelos quais os bebês passam, eu senti que os dados de um mês - vezes 2 bebês - eram um bom equilíbrio de recência e dados suficientes para fazer uma previsão.
Juntando e codificando
Também obtive algumas estatísticas interessantes, incluindo que, em média, alimentamos os meninos com 27,5 onças por dia, colocava-os na cama com mais frequência às 7h25, dava-lhes 5,22 onças na hora de dormir e eles dormiam 9 horas média. Também descobrimos que os meninos dormiam mais de 10 horas 75 por cento do tempo. Não é tão ruim. Mas eu sabia que com mais trabalho poderíamos melhorar isso.
Usando esses dados, consegui representar graficamente cada parâmetro em relação ao tempo de sono.
Você pode ver que já não existe uma correlação forte, pelo menos linear entre a maioria delas. A mais próxima é a relação um tanto linear - com muitos valores discrepantes - entre o total de alimentos e as horas de sono. Estranhamente, mais comida parece resultar em menos sono.
flickr / hegbar
Existem muitos tipos diferentes de algoritmos de aprendizado de máquina. Estes são amplamente classificados em tipos lineares e não lineares. Peguei os dados e os executei por meio de 6 algoritmos amplamente usados para ver o quão preciso cada um poderia ser. Aqui estão os resultados.
Ou de uma forma mais pictográfica
Aqui você pode ver que o algoritmo da Support Vector Machine teve claramente o melhor desempenho em relação aos dados, embora a faixa seja muito ampla e a média não seja muito melhor do que as outras. Nenhum está nem a 50 por cento, o que é muito ruim para fazer previsões. Isso se deve inteiramente à natureza pseudo-aleatória dos dados. Mesmo com esses resultados, decidi seguir em frente, na esperança de vislumbrar algum insight.
Usando SVM, treinei o algoritmo nos dados de entrada. Usando isso, eu agora poderia prever quanto sono teríamos com base na quantidade de comida ingerida por dia, quando os colocamos na cama e quanto os alimentamos na última alimentação. Por exemplo, dar a eles 28 onças, colocá-los na cama às 7 e dar 6 onças na última alimentação resultaria em 8 horas de sono bastante precárias.
Conclusões
Com o algoritmo agora treinado, eu poderia prever com alguma certeza quanto sono teríamos. Mais importante, eu poderia olhar as linhas de tendência para eles e ver que tipo de comportamento levou a mais sono na tentativa de otimizar. Contra-intuitivamente, ir para a cama mais cedo, com menos comida na época e ao longo do dia, na verdade aumentava o sono. Isso provavelmente se deve a muitos fatores, mas minha teoria é que menos comida significa menos gases, menos encolhimento do estômago quando com fome e, portanto, um sono mais reparador. Quantas vezes você se engasgou e depois estranhamente acordou no meio da noite morrendo de fome?
flickr / Dion Hinchcliffe
Infelizmente, assim como no teste A / B, nenhuma entrada individual parece ter uma entrada direta forte no sono. Acho que se tivesse, alguém já teria descoberto e faria milhões. Juntos, o aprendizado de máquina pode encontrar algumas dessas tendências e associações entre variáveis, o que leva para resultados melhores e mais precisos do que o teste A / B ou tentativa e erro, mas os resultados ainda estão longe de ser excelentes. A partir desses dados, no máximo eu poderia obter uma taxa de precisão de 41% das previsões. Isso significa que na maioria das vezes eles estão errados. Devido às mudanças frequentes no desenvolvimento e até mesmo às diferenças entre os meninos, é difícil aplicar dados entre eles. Novamente, um tamanho de amostra maior pode ajudar, mas não pretendemos ter trigêmeos tão cedo.
Ainda assim, esses resultados são melhores do que nada e ajudam a demonstrar a promessa do campo do aprendizado de máquina e da ciência de dados. Eu, pelo menos, prefiro tomar decisões com base em dados sobre minhas intuições e esses dados, mesmo apenas confirmando alguns de meus palpites, me fazem sentir melhor sobre nossa abordagem parental.
Tyler Lund é o editor da Pai em fuga.