Использование одних и тех же данных как для обучения, так и для тестирования модели машинного обучения удерживает нас от определения того, переобучена модель или нет, поскольку она, безусловно, будет вести себя точно из-за того, что тестировалась на том, что она уже видела во время обучения. Таким образом, мы разделили данные в наборе для обучения и тестирования в основном в соотношении 70–30 процентов, и их названия говорят сами за себя.

Вот в чем загвоздка. Разделения данных только на поезд и набор тестов не всегда достаточно, особенно когда мы жонглируем между различными гипотезами определенного алгоритма машинного обучения. В этом блоге я буду рассматривать LinearRegression, один из базовых алгоритмов машинного обучения.

В настоящее время # из sklearn.linear_model import LinearRegression # так известен среди новичков в прикладном машинном обучении, большинство из нас не сталкивается с тем фактом, что за предопределенной функцией стоит гипотеза (в основном полиномиальная функция), которую необходимо правильно выбрать для достижения максимально возможной точности.

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

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

Скажем, здесь функция стоимости ‘J’ полинома пятой степени кажется наименьшей. Таким образом, она считается окончательной гипотезой, а связанные с ней тета-значения - окончательными весами. Теперь необходимо снова вычислить «обобщенную» ошибку окончательной модели на тестовом наборе.

Но как можно обобщить окончательную ошибку ??? Модель уже видела тестовые данные раньше, выбирая между несколькими гипотезами. Это выглядит так же, как когда мы использовали обучающие данные как для обучения, так и для тестирования модели.

Вот значение набора проверки. Мы разделим весь набор данных на три сегмента, а не на два, с названиями обучающий набор, V набор для проверки и тестовый набор. . Как правило, коэффициент разделения составляет 60–20–20 соответственно.

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

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

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

Существуют более продвинутые концепции k-кратной перекрестной проверки, а не проверки удержания. В ранее обсуждавшемся процессе валидации (т. Е. Отложенной валидации) мы навсегда удерживаем набор валидации, что сокращает обучающие данные почти на 20–30%. Таким образом, в процессе K-кратной перекрестной проверки оставшийся набор данных после исключения тестовых данных не разделяется строго и сохраняется при разделении на обучение и проверку. Скорее всего, рассчитывается среднее значение валидации для каждой складки, что приводит к менее предвзятой модели.

Большое спасибо за чтение. Пожалуйста, дайте мне знать, если есть какие-либо исправления / предложения. Пожалуйста, сделайте 👏, если вам понравился пост. Заранее спасибо…