0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 2
|
||||||
1 | ||||||
Не растет точность нейросети на валидации (keras)26.06.2020, 13:21. Показов 5820. Ответов 3
Всем привет, я новичок на этом форуме
Надеюсь на вашу помощь У меня есть датасет, около 450 фичей и очень много пропущенных значений (более 50%) Надо решить задачу бинарной классификации На первом этапе использовал классический ML Все Nan я поменял на -999, сделал LabelEncoder для категориальных переменных и затем OneHotEncoder (Количество фичей выросло до 1000) Лучший результат дал Xgboost (после найстройки гипер параметров) - accuracy порядка 0.8 Но я знаю что можно получить результат и выше, и решил попробовать нейросеть Мной был оставлен тот же самый препроцессинг (забыл упомянуть что пробовал для заполнения пропущенных значений библиотеку fancyimpute, но результаты были хуже), но использовал MinMaxScaller для нормализации За последние пару дней перепробовал различные архитектуры , в настоящий момент обучаю
Я считаю что препроцессинг сделан в достаточной форме и не стоит заострять на нем внимание, но подскажите , почему моя сеть показывает результаты хуже чем xgboost/catboost/randomforest даже без настройки гипер параметров? Спасибо
0
|
26.06.2020, 13:21 | |
Ответы с готовыми решениями:
3
Ошибка на валидации растет Нейросети. Keras. Автоенкодер для передачи данных keras speech recognition обучение нейросети для распознавания голоса Нейросети нейросети что это за? |
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,915
|
|
26.06.2020, 15:19 | 2 |
ИМХО, бред. Как кодирование дырок НаНами - так и кодирование дырок какой-то константой.
Правильный софт должен успешно работать с явными (ничем не заполненными) пропусками. Не всегда для категор.переменных OneHotEncoder будет правильным - где-то лучше юзать "схему с накоплением". Например, для случая, когда следующая ступень фактора обязательно включает в себя все предыдущие (например, в признаке, описывающем полученное образование - там ступени незаконченного среднего, среднего, незаконченного высшего, высшего, аспирантуры или второго высшего) - лучше не one hot, а единицы на всех задействованных бинарных ступенях перекодированного признака. Не надо пробовать методом тыка - надо строить кривые обучения. На них видно будет - как в зависимости от размера сетки меняются ошибки обучения и обобщения, и при каких размерах достигаются экстремумы и выходы на асимптоты. Причём надо знать о буржуинской работе двухлетней давности (хотя я, например, неявно высказывал ту идею лет 16 назад) и пробовать увеличивать размер сетки даже после того, как достигнуто 100%ое запоминание обучающей выборки (ибо зависимость точности обобщения от размера сетки может не являться одноэкстремальной кривой). Например, ADAM может всё портить. Уже пару десятков лет как известно, что быстрые алгоритмы оптимизации=обучения есть смерть обобщающим способностям сетки.
0
|
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 2
|
|
26.06.2020, 16:30 [ТС] | 3 |
Спасибо VTsaregorodtsev
Что касается Nan , так они уже заданы по умолчанию , насколько я знаю RandomForest из SKLEARN не будет с ними работать, а Xgboost будет По поводу работы с Nan, в университете прошел курс Clinical DataScience и там советовали использовать fancyimpute плюс неоднократно встречал этот метод в статьях из этой области ,но все равно,перепробовав различные варианты кодирования, лучший результат был достигнут как указал выше при замене на -999 с one hot encoder так же соглашусь с вами, но этот датасет был получен в качестве соревнования между однокурсниками, датасет представляет из себя сборник анонимных данных (я не знаю описание признаков, даже наименования) , поэтому я не знаю насколько важно учитывать порядок между значениями категорий. Но конечно же я реализовал модель и без one hot encoder , разница между моделями не статистически важна) Про кривые обучения так же соглашусь , но модель на старте показывает точность на валидации 0.65 , к концу 100 эпохи точность остается на том же уровне (к концу 1000 эпохи ситуация такая же) . Какую архитектуру бы я не использовал , в каждом варианте я наблюдаю одну и туже точность p.s. ADAM поменял на СГД , но картина точно такая же)
0
|
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,915
|
|
26.06.2020, 21:45 | 4 |
Ну, Вам дропаут может помогать (если Вы его не выбрасывали при экспериментах с СГД).
Есть категор.признак(и) без дырок? Если есть - попробуйте раскидать выборку на подвыборки (каждая подвыборка - для уникальной комбинации значений таких селектирующих признаков), и обучить по отдельной сетке на каждой подвыборке. Т.е. чтобы не единая сетка выстраивала внутри себя аналоги условных операторов - а чтобы некоторые условия проверялись явно, и затем сетки имели локальные области ответственности. Заодно и полностью ликвидируется возможность неправильной перекодировки таких категор.признаков (ибо на вход нейросеткам их не надо будет совать - ибо каждая комбинация значений этих признаков имеет внутри соотв.подвыборки константное значение).
0
|
26.06.2020, 21:45 | |
26.06.2020, 21:45 | |
Помогаю со студенческими работами здесь
4
Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e Оператор Until. Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e Keras оптимизация Keras в ONNX Keras vs TensorBoard Keras Normalization Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |