Что, если простая модель линейной регрессии не может найти никакой связи между целью и переменной-предиктором? 🤔

Что делать, если ваша модель линейной регрессии не может установить связь между целевой переменной и переменной-предиктором ? Другими словами, что, если у них вообще нет линейной связи. После этого блога вы обязательно получите все свои ответы. Это мой третий блог из серии Регрессия. Этот блог требует предварительного знания Линейной регрессии.

Что такое полиномиальная регрессия?

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

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

Реализация полиномиальной регрессии - это двухэтапный процесс:

  • Сначала мы преобразуем наши данные в полином с помощью функции Polynomial Features из sklearn и,
  • Затем используйте линейную регрессию, чтобы подобрать параметры.

В криволинейном соотношении значение целевой переменной изменяется неравномерно по отношению к предиктору (ам). В полиномиальной регрессии у нас есть полиномиальное уравнение степени n, представленное как:

Здесь: 𝜃0 - смещение, 𝜃1, 𝜃2,…, 𝜃n - веса в уравнении полиномиальной регрессии, а n - степень полинома. Количество членов высшего порядка увеличивается с увеличением значения n,, и, следовательно, уравнение становится более сложным. Обратите внимание, что n должно быть больше 1, потому что n = 1 - простая линейная регрессия.

Для предикторов n уравнение включает все возможные комбинации полиномов разного порядка. Это известно как Многомерная полиномиальная регрессия.

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

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

#Import necessary libraties
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.preprocessing import PolynomialFeatures
#Change degree to reduce the error
polynomial_features= PolynomialFeatures(degree=2)
x_poly = polynomial_features.fit_transform(x_train)
model = LinearRegression()
model.fit(x_poly, y)y_poly_pred = model.predict(x_poly)
rmse = np.sqrt(mean_squared_error(y,y_poly_pred))
r2 = r2_score(y,y_poly_pred)
print(rmse)
print(r2)
#Plotting the polynomial line
plt.scatter(x, y, s=10)
# sort the values of x before line plot
sort_axis = operator.itemgetter(0)
sorted_zip = sorted(zip(x,y_poly_pred), key=sort_axis)
x, y_poly_pred = zip(*sorted_zip)
plt.plot(x, y_poly_pred, color='m')
plt.show()

Наконец, несколько раз попробовав, вы получите что-то вроде этого:

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

Компромисс между смещением и дисперсией

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

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

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

Все дело в полиномиальной регрессии. В этом блоге мы расскажем о другой регрессионной модели.

ВЫВОД:

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

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

Я надеюсь, что вам понравился этот пост. Спасибо за чтение😊