Структурированный блокнот   
 Машинное обучение (Machine Learning, обучающиеся алгоритмы) →  Обучение с учителем (Supervised learning) →  Общие принципы →  Как решать, куда вкладывать усилия -- кривая обучения (learning curve) →  

Высокая/низкая вариативность алгоритма -- кривая обучения


Как построить кривую обучения.
Пусть у нас есть обучающая выборка размером N. Будем брать часть от всей обучающей выборки размера Ni. Например мы можем взять Ni = 10, 11, 12 .. N. Далее полученную часть данных делим на обучающую и тестирующую (обычно в соотношении 70% на обучающую, 30% на тестирующую). Обучаем алгоритм на обучающей части данных, после чего считаем качество нашей обученной модели: на той же обучающей выборке Q_learn и на тестирующей выборке Q_test. Так мы получаем для каждого Ni значение Q_learn и Q_test. Пройдя по всем Ni получаем график зависимости качества на обучающей и тестирующей выборке в зависимости от объёма обучающей выборки. Это и есть кривая обучения. Обычно делать Ni с шагом в 1 выборку не особо полезно, а главное ресурсоёмко, поэтому зачастую можно взять, например, Ni = N/1000, N/300, N/100, N/30, N/10, N/5, N/2, N.

Какие выводы можно сделать из кривой обучения.
Если между кривыми качества на обучающей и на тестирующей выборке образуется фиксированный зазор -- значит в алгоритме избыток вариативности, её нужно уменьшать: увеличивать регуляризацию, отбрасывать лишние факторы (отбирать только самые значимые).
Если зазора нет (он минимален) или он сокращается -- значит вариативность в норме, можно пробовать добавлять факторы, или уменьшать регуляризацию -- возможно это поднимет качество.

Если по мере роста числа данных качество на тестовой выборке растёт -- значит есть смысл дополнительно наращивать объём данных, на которых происходит обучение.
Поиск по записям в текущем разделе: