Pull to refresh

Comments 7

увеличение размера обучающей выборки приведёт к существенному улучшению качества модели

В отношении SVM такое утверждение не всегда верно: машина опорных векторов не очень хорошо масштабируется — особенно при большом количестве переменных. Другими словами, эмпирически можно подобрать более-менее оптимальное соотношение n.rows/n.features для SVM, но не по принципу «чем больше — тем лучше».
Выводы, которые я делаю исходя из получившегося графика обучающей кривой, относятся к конкретному рассматриваемому случаю и я считаю, что будет неверно обобщать их на применяемые модели в целом. А, если говорить про SVM в общем, то полностью согласен с тем, что увеличение обучающей выборки далеко не всегда приведёт к улучшению результатов.
Как правило, заранее нельзя предсказать, какой алгоритм будет работать лучше в данной задаче. Но есть исключения. Одно из них — классификация изображений.

Для этой задачи можно заранее попытаться предсказать, что конволюционные нейронные сети будут рвать всех «на британский флаг». На том же кагле — море примеров. Я не знаю, ни одного соревнования, где в задаче распознавания изображений в топе было что-то иное.

Это я к чему. Прямо из коробки, на этом соревновании однойслойная сеть выдаёт точность 96%, двуслойная нейроная сеть, с dropout уровнем между ними выдаёт точность 97%. Простая конволюционная сеть выдаёт 99%. Дойдут руки, напишу batchIterator, который будет слегка крутить и двигать цифры, отражать 0, 1 и 8 случайным образом во время тренировки модели, возможно, (пока я не проверил на практике — это лишь теоретическая идея) и подкручу параметры модели — точность подскочит ещё выше.

(Клятвенно обещаю, как найду работу, напишу пост на тему этого соревнования, нейронных сетей и их 99% предсказания)

Это я к тому, что различные задачи лучше решаются различными алгоритмами и, на мой взгляд, SVM или Decision Tree для MNIST dataset (Это я не к тому, что эти алгоритмы хуже, я знаю примеры, когда SVM был лучше всех или когда, RF был вне конкуренции), — это не самый правильный выбор, как минимум в силу того, тёмные пиксели образуют компактное подмножество и хотелось бы это как-то учитывать, чего SVM или RF не делают.

(Желание глазами взглянуть на то, как ошибка зависит от числа итераций — это очень, очень правильно, и находит в моей душе сильный отклик. Многие этого не делают. Часто народ запускает GirdSearch для поиска гиперпараметров, и смотрит только на mean(score), std(score), не пытаясь понять, что, где и почему)

Я уверен, что, в принципе, можно и линейную регрессию использовать и она выдаст что-то внятное (Дискретизация предсказаний линейной регресси — это отдельная тема.), но зачем?

Вы не могли бы указать, точность, которую удаётся получить на Public LeaderBoard используя RF и SVM?
А есть у вас примеры, когда машина опорных векторов показала заметно лучшие результаты, чем RF/NN?
В этом соревновании у меня SVM запросто обходила RF/NN.

www.kaggle.com/c/crowdflower-search-relevance

Хотя те, кто выиграл это соревнование сказали, что у них лучшее предсказание было получено используя xgboost. Но они данные по-другому обрабатывали. С их решением ещё надо будет разбираться.

Наилучшую точность, которую мне удалось получить с помощь RF — 0.93286, а SVM — 0.97786.

Целиком и полностью согласен, с тем, что используя нейронные сети можно получить почти 100% результат, но в данной статье у меня не стояла задача добиться высокого места в Leaderbord. Я хотел показать на примере известного датасета, что происходит внутри модели при обучении и как, используя полученные знания, можно планировать свою дальнейшую работу.

P.S. Спасибо за столь развёрнутый ответ! А пост про нейронные сети на примере данного соревнования буду с нетерпением ждать.
Sign up to leave a comment.