Традиционно мы используем смешанную модель для моделирования продольных данных, то есть таких данных, как:
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
мы можем предположить случайный перехват или наклон для разных людей. Однако вопрос, который я пытаюсь решить, будет включать огромные наборы данных (миллионы людей, ежедневное наблюдение в течение 1 месяца, т.е. каждый человек будет иметь 30 наблюдений), в настоящее время я не знаю, есть ли пакеты, которые могут сделать этот уровень данных.
У меня есть доступ к spark / mahout, но они не предлагают смешанные модели, мой вопрос в том, могу ли я как-то изменить свои данные, чтобы я мог использовать RandomForest или SVM для моделирования этого набора данных?
Любая техника разработки функций, которую я могу использовать, чтобы она могла помочь RF / SVM учитывать автокорреляцию?
Большое спасибо!
Некоторые потенциальные методы, но я не мог позволить себе время, чтобы написать их в искру
Ответы:
Если у вас есть только несколько переменных, как в примере, то у вас не должно возникнуть проблем с каким-либо вариантом
lme4
.Техника машинного обучения действительно полезна, когда у вас много переменных, и вы хотите смоделировать нелинейности и взаимодействия между вашими переменными. Было разработано несколько подходов ОД, которые могут сделать это с помощью продольных данных. RNN являются одним из вариантов, хотя обычно они оптимизированы для проблем временных рядов, а не для панельных данных.
В принципе, нейронная сеть с прямой связью представляет собой (обобщенную) линейную модель с регрессорами, которые являются нелинейными функциями входных данных. Если производные регрессоры - верхний слой модели перед выводом - считаются непараметрической частью, то ничто не мешает вам добавить параметрическую структуру вместе с ней - возможно, в виде случайных эффектов.
Однако это не было реализовано для задач классификации, которые, как я полагаю, вы делаете, потому что вы заинтересованы в SVM в качестве кандидата.
источник
Повторение методов машинного обучения для продольных данных : документация sklearn для перекрестной проверки содержит итераторы перекрестной проверки для сгруппированных данных! Смотрите GroupKFold , LeaveOneGroupOut и LeavePGroupsOut .
Если вы заинтересованы в чистом прогнозировании, лучше всего использовать рекуррентные нейронные сети . Другой вариант - скрытые марковские модели .
источник
Вам действительно нужны случайные леса, NN и т. Д. Для ваших продольных данных?
lme4
способен обрабатывать миллионы людей:https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf
Он может легко работать с линейными смешанными моделями, и, как видно из ссылки, он также поддерживает нелинейные смешанные модели (хотя я не ожидаю, что он будет быстрым и для нелинейных моделей).
источник