#python #machine-learning #scikit-learn #missing-data
Вопрос:
У меня сейчас концептуальная проблема; Я знаю, что sklearn не нравится, когда .predict() используется в примерах со значениями NaN, но что мне делать, если я хочу предсказать метку для примера с NaN/отсутствующими функциями?
В настоящее время я заменяю ячейки NaN на -999 в качестве меры заполнения, но я не уверен, что это хорошая идея. К сожалению, поиск недостающих значений в выборках прогнозирования не дает полезных результатов.
Ответ №1:
Один из подходов, который вы могли бы попробовать, — это заполнить отсутствующее значение в вашем тестовом примере значением, которое вы используете для заполнения отсутствующих значений в вашем обучающем наборе данных. Например, если вы заполняете недостающие значения для этой функции средним значением обучающих данных, вы можете использовать это среднее значение для заполнения недостающего значения в своем тестовом примере.
Ответ №2:
Модели машинного обучения работают лучше, когда ваши данные полны, поэтому желательно, чтобы вы приписывали отсутствующие значения сводной статистике или той же информации, что и близко расположенная точка данных (например, с помощью KNN).
Scikit Learn содержит набор алгоритмов для вменения пропущенных значений. Наиболее распространенным методом является использование простого компьютера с «средней» стратегией.
Вы также можете использовать более простые подходы и использовать Pandas, чтобы либо заполнить все NAs в вашем наборе данных с помощью fillna (), либо удалить NAs с помощью dropna().
Важно, чтобы вы ознакомились с данными, с которыми работаете. Иногда недостающие данные имеют для этого значение. Например, при работе с данными о доходах некоторые очень обеспеченные люди отказались раскрывать свои доходы, в то время как люди с низким доходом всегда раскрывали бы их. В этом случае, если доход первой группы был заменен на 0 или среднее значение, результаты прогноза могли быть недействительными.
Взгляните на это пошаговое руководство о том, как обрабатывать недостающие данные в Python.