Я думаю, что использовать train_test_split для выборки большого набора данных, а затем использовать cross_validation для выборки, может быть неправильно.согласна? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь решить проблему DAT102x: прогнозирование ипотечных разрешений из государственных данных уже через пару месяцев.

Моя цель - понять кусочки проблемы классификации, а не занять место на вершине.

Однако я нашел то, что мне не совсем понятно:

Iполучить почти ту же производительность из модели перекрестной проверки на основе выборки (точность = 0,69), что и модель, полученная с использованием этой модели для всего набора данных (точность = 0,69).

НО, когда я отправляю данныеиспользуя набор данных о соревнованиях, я получаю «красивое» 0,5.

  • . Это звучит как проблема с переоснащением

, но я предполагаю, что проблема с переобучением будет замечена в резюме...

Единственное логическое объяснение, которое у меня есть, заключается в том, что резюме не удается, потому что оно основано на образце, который я создал с помощью функции train_test_split.

Другими словами: потому что я использовал этоВ качестве выборки моя выборка стала своего рода ФРАТТАЛЬНОЙ: независимо от того, какую подвыборку я создаю, это всегда очень точное воспроизведение популяции.

Итак: CV "не в состоянии" обнаружить избыточный фиттинг.

Ок.Я надеюсь, что смог объяснить, что происходит.

(кстати, если вы удивляетесь, почему я не проверяю его при полной загрузке: я использую HP core duo 2,8 Mhz 8 RAM ... этозанимает вечно ....)

вот шаги моего кода:

0) подготовить набор данных (NaN и т. д.) и преобразовать все в категориальные (числовые -> binning)

1) использовать train_test_split для выборки 12.000 записей из набора данных 500K 2) кодировать (выбранный) категориально с помощью OHE 3) уменьшать характеристики с помощью PCA 4) выполнять CV для определения наилучшего значения гиперпараметра Log_reg "C" 5) разбивать образец с использованиемtrain_test_split: хранение 2000 записей из 12000 6) построение модели Log_reg на основе Xtrain, y_train (точность: 0,69) 7) встраивание всего набора данных в модель log_reg (точность: 0,69) 8) встраивание всего набора данных соревнования в модель log_reg9) получение отличного результата с точностью до 0,5 ....


Единственное другое объяснение, которое у меня есть, - это то, что я выбрал несколько функций, которые являются своего рода "избыточным"den "в наборе данных соревнований, от тех, кого я пропустил.(Вы знаете: ребята из соревнований здесь, чтобы заставить нас вспотеть ...)

также здесь у меня есть "аппаратная проблема", чтобы встряхнуть цифры.

Если у кого-то есть облако относительноэто я счастлив узнать

спасибо большое

  • Я тоже пробовал с Случайным Лесом, но у меня та же проблема.В этом случае я понимаю, что OHE - это не то, что любит sklearn RF-модель: оно ставит под угрозу модель и разбивает ценные функции со «многими» категориями

, которые с удовольствием поделятся, если потребуется.

Я бы ожидал одного из этих двух:

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

, или: модель, которая имеет сопоставимую (0,66?) Производительность на соревнованиинабор данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...