Вступление

Давайте начнем с этой темы с очень простого вопроса: какой первый алгоритм выучило большинство из нас, когда мы были на начальной стадии?

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

Уравнение множественной линейной регрессии:

y = β0 + β1X1 + β2X2 +… + βnXn

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

Полиномиальная регрессия

Это особый случай линейной регрессии, в котором связь между зависимой переменной (например, «y») и независимыми переменными (например, «X») является нелинейной, но мы используем n-ю степень полинома.

y = β0 + β1X¹ + β2X² + … + βnX^n + ε

y - зависимая переменная

β0 - точка пересечения y

β1, β2, ……… βn - коэффициент при x

X, X¹, X²,… ..X ^ n - независимые функции.

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

Зачем нужна полиномиальная регрессия:

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

Теперь перейдем непосредственно к нашей части реализации.

Реализация:

описание проблемы

Я использую набор данных HeightVsWeight из kaggle. Набор данных содержит два столбца: один для возраста человека, а другой - для роста с учетом возраста человека.

Наша цель - определить рост человека с учетом возраста. Это означает, что «Возраст» будет нашей независимой переменной (например, «X»), а «Рост» будет зависимой переменной (например, «y»).

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

Импорт библиотек

Первым делом давайте импортируем все необходимые библиотеки, которые нам понадобятся при выполнении полиномиальной регрессии.

Мы использовали Pandas для управления Datafram, Numpy для метрик линейной алгебры и matplotlib для визуализации, Linear regression from sklearn для реализации Linear model и Polynomial для реализации полиномиальной модели.

Загрузить набор данных

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

Исследовательский анализ данных

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

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

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

Функция description () используется для генерации описательной статистики, которая суммирует центральную тенденцию, дисперсию и форму распределения набора данных, за исключением значений NaN.

Отделение зависимой переменной от независимой.

Теперь наш X содержит все независимые функции, а y содержит зависимую переменную. Мы сделали это, потому что нам нужно найти значение y (зависимой переменной) с помощью заданных функций (то есть X).

Визуализация наших данных

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

Линейная регрессия

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

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

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

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

Полиномиальная регрессия

Мы подогнали наши данные в полиномиальной модели до степени 2. мы настроим эту степень, чтобы найти оптимальный результат.

Примечание: полином 1-й степени - это не что иное, как линейная регрессия.

Мы сохранили наши предсказанные значения в переменной y_pred_pol, как и в случае с линейной моделью.

Это наш результат с использованием полиномиальной регрессии (степень = 2), мы можем улучшить его, настроив степень. Но теперь мы также можем сделать вывод, что этот прогноз лучше нашей линейной модели.

Из вышесказанного мы можем видеть, что по мере того, как мы увеличиваем степень нашей модели, прогнозы становятся все лучше и лучше, но поскольку мы присвоили нашей модели степень выше 8, она предсказала 100% точность для всех точек данных, что означает, что наша модель стала переоборудован. И мы должны спасти нашу модель от переобучения. Мы можем сделать это, доказав степень снижения нашей модели.

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

Заключение

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

Надеюсь, это стоит прочитать. Пожалуйста, поделитесь своими мнениями в комментариях. Если вам понравилось, поставьте лайк.