Подтвердить что ты не робот

Что такое кривая обучения в машинном обучении?

Я хочу знать, какова кривая обучения в машинном обучении. Каков стандартный способ его построения? Я имею в виду, какими должны быть оси x и y моего сюжета?

4b9b3361

Ответ 1

Обычно это относится к графику точности/ошибки прогнозирования в зависимости от размера обучающего набора (т.е. Насколько лучше модель прогнозирует цель по мере увеличения числа экземпляров, используемых для ее обучения).

learning-curve

Обычно как результаты обучения, так и результаты тестирования/валидации строятся вместе, поэтому мы можем диагностировать компромисс между отклонениями (то есть определить, выиграем ли мы от добавления дополнительных данных обучения и оценить сложность модели, контролируя регуляризацию или количество функций).

bias-variance

Ответ 2

Я просто хочу оставить короткую записку по этому старому вопросу, чтобы указать, что кривая обучения и кривая ROC не являются синонимами.

Как указано в других ответах на этот вопрос, кривая обучения условно отображает улучшение производительности на вертикальной оси при изменении других параметров (по горизонтальной оси), таких как набор тренировок размер (в машинное обучение) или итерация/время (как в машинном, так и в биологическом обучении). Одной из основных моментов является то, что многие параметры модели меняются в разных точках графика. Другие ответы здесь проделали большую работу по иллюстрированию кривых обучения.

(Существует также другое значение кривой обучения в промышленном производстве, возникшее в результате наблюдения в 1930-х годах, что количество рабочих часов, необходимых для производства отдельной единицы, уменьшается с одинаковой скоростью по мере удвоения количества единиц. действительно актуальным, но стоит отметить полноту и избежать путаницы в веб-поиске.)

Напротив, Характеристика характеристики приемника или кривая ROC не показывает обучения; он показывает производительность. Кривая ROC представляет собой графическое изображение эффективности классификатора, которое показывает компромисс между увеличением истинных положительных скоростей (по вертикальной оси) и увеличением ложноположительных скоростей (по горизонтальной оси) по мере того, как порог дискриминации классификатора изменяется. Таким образом, только один параметр (порог принятия решения/дискриминации), связанный с моделью, изменяется в разных точках графика. Эта кривая ROC (из Википедии) показывает производительность трех разных классификаторов.

ROC curve, see previous link for CC licensing

Здесь не изображено обучение, а скорее производительность по отношению к двум различным классам успеха/ошибки, поскольку порог принятия решения классификатором делается более мягким/строгим. Посмотрев на область под кривой, мы можем видеть общее представление о способности классификатора различать классы. Эта метрика "площадь-кривая" нечувствительна к числу членов в двух классах, поэтому она может не отражать фактическую производительность, если членство в классе несбалансировано. Кривая ROC имеет множество субтитров, и заинтересованные читатели могут проверить:

Фосетт, Том. "Графики ROC: заметки и практические соображения для исследователей" . Machine Learning 31 (2004): 1-38.

Swets, John A., Robyn M. Dawes и John Monahan. "Лучшие решения через науку" . Scientific American (2000): 83.

Ответ 3

Некоторые люди используют "кривую обучения", чтобы ссылаться на ошибку итеративной процедуры как функцию номера итерации, т.е. она иллюстрирует сходимость некоторой функции полезности. В приведенном ниже примере я рисую среднеквадратичную ошибку (MSE) алгоритма наименьшего среднего квадрата (LMS) как функцию номера итерации. Это иллюстрирует, как быстро LMS "учит" в этом случае импульсную реакцию канала.

learningcurves.png

Ответ 4

В принципе, кривая машинного обучения позволяет найти точку, с которой алгоритм начинает учиться. Если вы берете кривую, а затем разрезаете тангенс наклона для производной в точке, где она начинает достигать постоянной, это когда она начинает строить свои способности к обучению.

В зависимости от того, как отображаются оси x и y, одна из ваших осей начнет приближаться к постоянному значению, в то время как другие значения оси будут продолжать увеличиваться. Это когда вы начинаете видеть некоторое обучение. Вся кривая в значительной степени позволяет вам измерять скорость, с которой ваш алгоритм может учиться. Максимальная точка обычно возникает, когда наклон начинает отступать. Вы можете взять ряд производных мер в точку максимума/минимума.

Итак, из приведенных выше примеров видно, что кривая постепенно стремится к постоянному значению. Сначала он начинает использовать свое обучение на примерах обучения, а наклон расширяется в максимальной/минимальной точке, где он стремится приближаться все ближе и ближе к постоянному состоянию. На этом этапе он может собирать новые примеры из тестовых данных и находить новые и уникальные результаты из данных. У вас будут такие меры оси x/y для эпох против ошибки.

Ответ 5

Как вы можете определить для данной модели, будут ли полезны более учебные точки? Полезной диагностикой для этого являются кривые обучения.

• График точности/погрешности предсказания по сравнению с размером набора тренировок (то есть: насколько лучше модель получает предсказание цели по мере увеличения числа экземпляров, используемых для ее обучения).

• Кривая обучения обычно показывает улучшение производительности на вертикальной оси, когда есть изменения в другом параметре (по горизонтальной оси), такие как размер набора тренировок (в машинное обучение) или итерация/время

• Кривая обучения часто полезна для построения алгоритмической проверки работоспособности или улучшения производительности

• График построения кривой обучения может помочь диагностировать проблемы, которые ваш алгоритм будет страдать от

Лично следующие две ссылки помогли мне лучше понять эту концепцию

Кривая обучения

Кривая обучения Sklearn

Ответ 6

В классе машинного обучения Эндрю кривая обучения представляет собой график зависимости ошибки обучения/перекрестной проверки от размера выборки. Кривая обучения может использоваться для определения того, имеет ли модель высокое смещение или высокую дисперсию. Если модель страдает от проблемы высокого смещения, так как размер выборки увеличивается, ошибка обучения будет увеличиваться, и ошибка перекрестной проверки будет уменьшаться, и, наконец, они будут очень близки друг к другу, но все еще с высокой частотой ошибок как для обучения, так и для ошибки классификации, И увеличение размера выборки мало поможет для проблемы высокого смещения.

Если модель страдает от высокой дисперсии, так как продолжает увеличиваться размер выборки, ошибка обучения будет продолжать расти, а ошибка перекрестной проверки будет уменьшаться, и они будут приводить к низкой частоте ошибок обучения и перекрестной проверки. Таким образом, большее количество выборок поможет улучшить производительность прогнозирования модели, если модель страдает от высокой дисперсии.

Ответ 7

используйте этот код для построения:

# Loss Curves
plt.figure(figsize=[8,6])
plt.plot(history.history['loss'],'r',linewidth=3.0)
plt.plot(history.history['val_loss'],'b',linewidth=3.0)
plt.legend(['Training loss', 'Validation Loss'],fontsize=18)
plt.xlabel('Epochs ',fontsize=16)
plt.ylabel('Loss',fontsize=16)
plt.title('Loss Curves',fontsize=16)

# Accuracy Curves
plt.figure(figsize=[8,6])
plt.plot(history.history['acc'],'r',linewidth=3.0)
plt.plot(history.history['val_acc'],'b',linewidth=3.0)
plt.legend(['Training Accuracy', 'Validation Accuracy'],fontsize=18)
plt.xlabel('Epochs ',fontsize=16)
plt.ylabel('Accuracy',fontsize=16)
plt.title('Accuracy Curves',fontsize=16)

обратите внимание, что history = model.fit(...)

Ответ 8

Пример X = уровень y = зарплата

XY 0 2000 2 4000 4 6000 6 8000

Регрессия дает точность 75%, полиномиальная линия состояния дает точность 85% из-за кривой enter image description here