Работа с пропущенными значениями - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть два набора данных, обучающий и тестовый набор.Если у меня есть значения NA в обучающем наборе, но не в тестовом наборе, я обычно сбрасываю строки (если их немного) в обучающем наборе, и все.

Но теперь я получил много NAзначения в обоих наборах, поэтому я отбросил функции, которые получили большинство значений NA, и мне было интересно, что теперь делать.

Стоит ли просто отбросить те же функции в тестовом наборе и вменять отсутствующие остальныезначения?

Есть ли другой метод, который я мог бы использовать для предварительной обработки данных?

Могут ли алгоритмы машинного обучения, такие как логистическая регрессия, деревья решений или нейронные сети обрабатывать пропущенные значения?

Наборы данных получены в результате конкурса Kaggle, поэтому я не могу выполнить предварительную обработку перед разделением данных

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

На этот вопрос не так просто ответить, потому что он зависит от типа значений NA.

Являются ли значения NA по какой-то случайной причине?Или есть причина, по которой они отсутствуют (в опросе нет подходящего ответа с несколькими вариантами ответа или, может быть, люди не хотели бы отвечать)

Во-первых, было бы хорошо использовать простую стратегию вменения, чтобыВы можете разместить свою модель на данных.Таким образом, я имею в виду что-то вроде среднего вменения или выборки из предполагаемого распределения вероятности.Или даже выборочные значения наугад.Обратите внимание, что если вы просто берете среднее значение существующих значений, вы изменяете статистику набора данных, то есть вы уменьшаете стандартное отклонение.Об этом следует помнить при выборе вашей модели.

Во-вторых, вам придется применить свои знания предметной области, чтобы найти правильные значения заполнения.

По поводу вашего последнего вопроса: если вы хотитеЗаполнив значения моделью машинного обучения, вы можете использовать другие функции набора данных и неявно предположить зависимость между отсутствующим элементом и другими функциями.В зависимости от модели, которую вы позже будете использовать для прогнозирования, вам может не пригодиться промежуточная оценка.

Надеюсь, это поможет, но правильный ответ действительно зависит от данных.

0 голосов
/ 10 февраля 2019

В общем, алгоритмы машинного обучения плохо справляются с отсутствующими значениями (по большей части вескими причинами, так как неизвестно, почему они отсутствуют или что значит отсутствовать, которые могут отличаться для разных наблюдений).

Хорошей практикой будет выполнение предварительной обработки перед разделением между обучающим и тестовым наборами (действительно ли ваши обучающие и тестовые данные являются действительно случайными подмножествами данных, какими они должны быть?) И убедитесь, что оба набора обрабатываются одинаково.

Существует множество способов справиться с вашими недостающими данными, и это сильно зависит от данных, а также от ваших целей, которые являются лучшими способами.Не стесняйтесь связаться, если вам нужен более конкретный совет.

...