Я пытаюсь разработать прогностическую модель, используя многомерные клинические данные, включая лабораторные данные. Пространство данных невелико с 5 тыс. Выборок и 200 переменных. Идея состоит в том, чтобы ранжировать переменные, используя метод выбора признаков (IG, RF и т. Д.), И использовать функции высшего ранга для разработки прогнозной модели.
В то время как выбор функций идет хорошо с наивным байесовским подходом, сейчас я сталкиваюсь с проблемой реализации прогностической модели из-за отсутствия данных (NA) в моем переменном пространстве. Есть ли какой-нибудь алгоритм машинного обучения, который может аккуратно обрабатывать образцы с отсутствующими данными?
machine-learning
missing-data
Хадер Шамер
источник
источник
Ответы:
Это зависит от модели, которую вы используете. Если вы используете некоторую порождающую модель, то существует принципиальный способ справиться с отсутствующими значениями (). Например, в таких моделях, как наивные байесовские или гауссовские процессы, вы интегрируете отсутствующие переменные и выбираете лучший вариант с остальными переменными.
Для дискриминационных моделей это более сложно, так как это невозможно. Есть несколько подходов. Gharamani и Jordan описывают принципиальный подход, при котором пропущенные значения обрабатываются как скрытые переменные, а для оценки их используется вариант алгоритма EM. Аналогичным образом Smola et al. опишите вариант алгоритма SVM, который явно решает проблему.
Обратите внимание, что часто рекомендуется заменять отсутствующие значения на среднее значение переменной. Это проблематично, как описано в первой статье. Иногда я сталкивался с бумагами, которые регрессируют на переменные, чтобы оценить пропущенные значения, но я не могу сказать, относится ли это к вашему случаю.
источник
R-пакет randomForestSRC, который реализует случайные леса Бреймана, обрабатывает недостающие данные для широкого класса анализов (регрессия, классификация, выживание, конкурирующий риск, неконтролируемый, многомерный).
Смотрите следующий пост:
Почему Random Forest не обрабатывает пропущенные значения в предикторах?
источник
Попробуйте вменение, используя ближайших соседей, чтобы избавиться от недостающих данных.
Кроме того, пакет Caret имеет интерфейсы для широкого спектра алгоритмов, и все они поставляются с методами прогнозирования в R, которые можно использовать для прогнозирования новых данных. Метрики производительности также могут быть оценены с использованием k-кратной перекрестной проверки с использованием того же пакета.
источник
Существуют также алгоритмы, которые могут использовать отсутствующее значение как уникальное и другое значение при построении прогнозирующей модели, например деревья классификации и регрессии. такие как xgboost
источник
lightgbm может обрабатывать NaN из коробки ( http://lightgbm.readthedocs.io/en/latest/ ).
источник