Tradicionalmente, usamos modelo misto para modelar dados longitudinais, ou seja, dados como:
id obs age treatment_lvl yield
1 0 11 M 0.2
1 1 11.5 M 0.5
1 2 12 L 0.6
2 0 17 H 1.2
2 1 18 M 0.9
podemos assumir interceptação ou inclinação aleatória para pessoas diferentes. No entanto, a pergunta que estou tentando resolver envolverá enormes conjuntos de dados (milhões de pessoas, 1 mês de observação diária, ou seja, cada pessoa terá 30 observações), atualmente não sei se existem pacotes que podem fazer esse nível de dados.
Eu tenho acesso ao spark / mahout, mas eles não oferecem modelos mistos, minha pergunta é: existe alguma maneira de modificar meus dados para que eu possa usar o RandomForest ou o SVM para modelar esse conjunto de dados?
Alguma técnica de engenharia de recursos que eu possa usar para ajudar o RF / SVM a explicar a correlação automática?
Muito Obrigado!
Alguns métodos em potencial, mas não tive tempo para escrevê-los
Respostas:
Se você tiver apenas algumas variáveis, como no exemplo, não deverá ter problemas com alguma variante de
lme4
.Onde as técnicas de aprendizado de máquina realmente brilham é quando você tem muitas variáveis e deseja modelar não-linearidades e interações entre suas variáveis. Poucas abordagens de ML foram desenvolvidas que podem fazer isso com dados longitudinais. RNNs são uma opção, embora geralmente sejam otimizados para problemas de séries temporais, em vez de dados de painel.
Em princípio, uma rede neural feed-forward é um modelo linear (generalizado), com regressores que são funções não lineares dos dados de entrada. Se os regressores derivados - a camada superior do modelo antes da saída - são considerados a parte não paramétrica, não há nada que o impeça de adicionar uma estrutura paramétrica a ela - talvez na forma de efeitos aleatórios.
No entanto, isso não foi implementado para problemas de classificação, o que suponho que você esteja fazendo porque está interessado no SVM como candidato.
fonte
Repetindo as técnicas de aprendizado de máquina para dados longitudinais : a documentação do sklearn de validação cruzada possui iteradores de validação cruzada para dados agrupados! Consulte GroupKFold , LeaveOneGroupOut e LeavePGroupsOut .
Se você estiver interessado em previsões puras, provavelmente a melhor opção é usar redes neurais recorrentes . Outra opção são modelos ocultos de Markov .
fonte
Você realmente precisa de florestas aleatórias, NNs etc. para seus dados longitudinais?
lme4
é capaz de lidar com milhões de indivíduos:https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf
Ele pode lidar facilmente com modelos mistos lineares e, como você pode ver no link, também oferece suporte a modelos mistos não lineares (embora eu não esperasse que fosse rápido também para os modelos não lineares).
fonte