Кривые обучения
Кривые обучения показывают, как меняется качество модели при увеличении количества обучающих данных.
Обычно на графике сравнивают две оценки:
- качество на обучающих данных;
- качество на валидационных данных.
Такой график помогает понять, как модель ведёт себя с увеличением количества примеров.
Что показывает кривая обучения
Заголовок раздела «Что показывает кривая обучения»Если данных мало, модель может хорошо работать на обучающих примерах, но заметно хуже на новых данных. Это признак переобучения: модель слишком сильно подстроилась под небольшой набор примеров.
Когда данных становится больше, модели сложнее запомнить отдельные объекты. Если новые данные действительно содержат полезную информацию, качество на проверочных данных обычно становится устойчивее.
На схеме это выглядит так: качество на обучающих данных постепенно снижается, качество на валидационных данных растёт, а разрыв между ними уменьшается.
Если линии сближаются и выходят на устойчивый уровень, добавление данных уже не даёт резкого прироста качества. Если же валидационная кривая продолжает расти, дополнительные данные могут быть полезны.
Количество и качество данных
Заголовок раздела «Количество и качество данных»Важно не только число строк в таблице. Новые данные должны быть разнообразными и относиться к той же задаче.
Если просто продублировать уже имеющиеся строки, модель почти ничего нового не узнает. Полезны именно новые примеры, которые показывают разные варианты объектов и ситуаций.
Связь с валидационными кривыми
Заголовок раздела «Связь с валидационными кривыми»Валидационная кривая показывает влияние гиперпараметра, например глубины дерева.
Кривая обучения показывает влияние количества данных при уже выбранной модели и её параметрах.
Поэтому эти инструменты отвечают на разные вопросы:
- валидационная кривая: какую сложность модели выбрать;
- кривая обучения: как меняется качество при добавлении данных.
Построим кривую обучения для дерева решений фиксированной глубины 4. Размер обучающей выборки будет меняться, а качество будет оцениваться с помощью кросс-валидации.
uses MLABC, PlotML;
begin var (X, y) := Datasets.MakeCircles( 1000, noise := 0.25, factor := 0.5, seed := 42);
var cv := Validation.StratifiedKFold(y, 5, seed := 42);
var curve := Validation.LearningCurve( [0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 1.0], () -> new DecisionTreeClassifier(4), X, y, Metrics.Accuracy, cv);
Plot.LearningCurve( curve, xLabel := 'Количество данных в обучающей выборке', yLabel := 'Accuracy', title := 'Кривая обучения для дерева решений' );end.Программа строит две кривые: качество на обучающих данных и качество на валидационных данных.
Синяя кривая показывает качество на обучающих данных. При очень маленькой выборке оно почти идеально: дереву легко подстроиться под небольшое число объектов. Когда данных становится больше, задача усложняется, и обучающая точность снижается.
Красная кривая показывает качество на валидационных данных. Сначала оно низкое: данных мало, и модель плохо обобщает. Затем при добавлении данных качество растёт и постепенно выходит на более устойчивый уровень.
Разрыв между кривыми при малом количестве данных показывает переобучение. По мере увеличения выборки разрыв уменьшается: модель меньше запоминает отдельные примеры и лучше работает на новых данных.
Поскольку при большом количестве данных модель дольше обучается и предсказывает, то стоит остановиться на таком количестве данных, когда разрыв между кривыми уже небольшой. Например, на графиках выше в качестве такого количества можно выбрать 400 данных в обучающей выборке.
Заметим, что изображение иллюстрирует задачу классификации - в задаче регрессии по оси y откладывается другая метрика качества.
Главное
Заголовок раздела «Главное»Кривые обучения показывают, как значение выбранной метрики на обучающих и валидационных данных меняется при увеличении обучающей выборки.
По мере добавления данных значения обычно сближаются и постепенно перестают заметно изменяться. Уровень, на котором они стабилизируются, приблизительно показывает предельное качество модели с выбранными гиперпараметрами. После этого добавление новых данных не даст существенного улучшения.