How you should not solve machine learning task in YDS entrance contest
Исследуя руины исчезнувшей цивилизации, археолог Азат обнаружил таблички, на которых записаны тексты древних заклинаний, а также для каждого из них дано вещественное число — оценка колдовской силы. Азату стало интересно, от чего зависит колдовская сила, и он решил определить это с помощью анализа данных. Помогите ему, создав модель, предсказывающую по заклинанию его силу.
Все данные можно скачать по этой ссылке.
Вам предоставляется три файла: train.txt, train_ans.txt и test.txt. В каждой строке файлов train.txt и test.txt записан набор символов — текст заклинания (одна строка — одно заклинание, пробелы также входят в заклинание). В каждой строке файла train_ans.txt записано одно вещественное число — таргет для соответствующего заклинания из обучающей выборки (в i-й строке таргет для i-го заклинания).
Вы должны загрузить в систему файл submitted_answers.txt, в каждой строке которого записан предсказанный таргет для соответствующего заклинания из тестовой выборки. Таким образом, в файле должно быть 100 строк, в каждой из которых записано одно вещественное число.
Ваша посылка будет автоматически забракована (вы получите за неё ноль баллов), если число предсказаний в файле отлично от 100; Ваша оценка в этой задаче будет вычисляться как min(2, (8 - RMSE) / (1.75)) где RMSE — значение корня из среднеквадратичного отклонения предсказания от истинных таргетов на тестовой выборке.
К сожалению, я сразу пытался решить эту задачу нейронками и конечно не успел ее заслать (хотя мб кто-то успел бы). Я сделал 50 эпох обучения, и видно что MSE стремится к нулю. Хотя возможно есть переобучение, кажется, что можно сделать early stop на эпохе 30 и этого будет достаточно чтобы на тесте получить RMSE 4.5 и максимальный балл за задачу.
Судя по комментариям других поступающих неплохие результаты показывал бустинг на n-граммах и прочих собранных статистиках, хотя таким подходом народ получал оценку не выше 1.3 из 2, что тоже хорошо.