# 15.07.2017, 17:14:24 | |
---|---|
![]() |
Раз финальные результаты уже известны, было бы интересно узнать, кто как решал эту задачку - какие модели использовали и как предобрабатывали данные, что делали с некорректными данными. У меня наилучший результат дала модель xgboost (к сожалению, не помню точно, какие точно настройки использовались в оптимальном варианте) - 0.5338 на финальной выборке (422 место). Более сложные модели показывали худшие результаты. Догадываюсь, что многие также использовали эту модель. Препроцессинг использовался простой: все данные разбивались на несколько категорий - от 3 до 14, найденные выбросы (данные с некорректными значениями), а также пропущенные данные заменялись на ноль (нулевая категория). |
# 15.07.2017, 17:45:32 | |
---|---|
![]() |
Интересно то, что никто из тех, кто был в топ 10 на паблике, в итоге не попал в топ 10 на привате. Что-то совсем уж невообразимое. А по поводу решения: использовал разные модели на разных сабсетах исходного набора данных (т.е. обучение разных классификаторов с подбором параметров и т.д.). Лучшее из решений (если бы я его выбрал) на привате дало бы 27 место. Вообще конечно интересно узнать, что делали ребята из топ 10 (особенно, как была орагнизована локальная валидация и отбор признаков). Но вряд ли люди будут такими секретами делиться) Еще надеюсь, что кто-нибудь из победителей расскажет о своем решении на одной из ближайших тренировок по машинному обучения в яндексе. |
# 15.07.2017, 18:07:27 | |
---|---|
![]() |
9 место |
# 15.07.2017, 18:45:28 | |
---|---|
![]() |
Все получилось ожидаемо - и то, как тряхнуло оверфиттивших на публичном датасете, и плотность, с которой идут первые пара сотен мест, и отчасти то, что результат оказался гораздо лучше публичного датасета. Сложность модели жестко ограничена низкой размерностью признаков и с большим запасом перекрывается размером датасета. Как ни крути с фичами, моделями, ансамблями, ничего из этого не вытянешь, поэтому первые 200 мест отличаются в пределах стат. погрешности в 4-м знаке при том что стандартное отклонение между фолдами на 7-fold кроссвалидации (10% от всех данных на фолд) лежит в 3-м знаке и было около 0.005, т.е. при среднем CV=0.538 закрытые 20% могли лежать в очень широких пределах, что и произошло. По большому счету, для хорошего результата хватило бы правильно настроить XGBoost или LightGBM и на этом успокоиться. Ни нейросети, ни другие модели не сработали в ансамбле никак. Баггинг, аугментация, ансамбли базовых моделей с разными настройками помогли слабо, что было немного неожиданно, но объяснимо. |
# 15.07.2017, 19:03:03 | |
---|---|
![]() |
А где можно ознакомиться с полученными вероятностным рядами из 30000 значений, разумеется, с колонкой исходов хотя бы первой десятки победителей? Вроде организаторы хакатона обещали предоставить такую возможность. |
# 15.07.2017, 19:13:56 | |
---|---|
![]() |
Борис КауровВыше Иван оставил ссылку на репозиторий. Там в том числе и итоговый файл с вероятностями. |
# 15.07.2017, 19:46:37 | |
---|---|
![]() |
Artem ZraevБорис КауровВыше Иван оставил ссылку на репозиторий. Там в том числе и итоговый файл с вероятностями. При нажатии на "9 место" в посте Ивана вхожу на страницу с описанием его работы с двумя пакетами машинного обучения и не вижу ссылку на репозиторий. Вы можете подсказать, в каком месте этой или другой страницы указана ссылка на репозиторий с вероятностными рядами победителей? |
# 15.07.2017, 20:12:27 | |
---|---|
![]() |
Борис КауровЭто ссылка и есть на git репозиторий Ивана, со скриптами и т.д. Конкретный файл вот здесь https://github.com/tyamgin/mlbootcamp/tree/master/championship12/res (res.txt). Про других победителей ничего не могу сказать. Захотят выложить на публику свои решения или нет - это уже их право)Artem ZraevБорис КауровВыше Иван оставил ссылку на репозиторий. Там в том числе и итоговый файл с вероятностями. |
# 15.07.2017, 22:15:10 | |
---|---|
![]() |
Всем привет! Локально лучшее и довольно простое решение я получил усреднением двух XGB моделей с очисткой и преобразованием признаков. Данное решение доступно по https://github.com/shayakhmetov/mlbootcampV, которое соответсвтует финальному 0.5305696 (что было бы тоже вторым местом). Решение на лидерборде было получено путём усреднения с весами различных XGB моделей с разными видами чистки и дополнительными признаками, однако это не сказалось на финальном месте. |
# 15.07.2017, 22:28:27 | |
---|---|
![]() |
Рим, поздравляю с прекрасным результатом! И спасибо за код, очень познавательное и элегантное решение. Вы выбирали способы дискретизации признаков исходя из CV, или из своего опыта? Мне, например, это в голову не пришло, ведь XGB и нейронные сети вполне хорошо работают с непрерывными данными. Возраст только дискретизировал, потому что там есть цикличность с периодом ровно 2 года. |