线性回归----多项式回归

多项式回归:相当于为样本添加了一些特征,这些特征是原来样本的多项式项,增加了这些特征之后,我们可以使用线性回归的思路更好的拟合我们的数据。

多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加,可以进⼀步降低训练误差,但导致过拟合的风险也随之增加

模拟多项式回归:

本案例中,共有三列数据(岗位、级别、薪资),通过对数据的筛选,提取出Level和Salary两列数据作为相应的自变量和因变量,通过对其做线性回归,进行预测不同级别的薪资情况,本案例通过多项式回归进行预测:

相关代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

dataset = pd.read_csv('Position_Salaries.csv')
X = dataset.iloc[:, 1:2].values
y = dataset.iloc[:, 2].values

plt.figure()
plt.scatter(X,y, color = 'red')
plt.title('Level vs Salary')
plt.xlabel('Position level')
plt.ylabel('Salary')

 

from sklearn.preprocessing import PolynomialFeatures
poly_reg = PolynomialFeatures(degree =4)

"""
多项式特征构造函数,里面包含了三个参数,分别为:
degree:控制多项式的度,这个地方为4,则特征值为a^4开始。
interaction_only: 默认为False,如果指定为True,那么就不会有特征自己和自己结合的项,上面的二次项中没有a^2和b^2。
include_bias:默认为True。如果为True的话,那么就会有上面的 1那一项。
"""
X_poly = poly_reg.fit_transform(X)
X_poly

 

from sklearn.linear_model import LinearRegression

lin_reg_1 = LinearRegression()
lin_reg_1.fit(X, y)

lin_reg_2 = LinearRegression()
lin_reg_2.fit(X_poly, y)

# Visualising the Polynomial Regression results
plt.figure()
plt.scatter(X, y, color = 'red')
plt.plot(X, lin_reg_2.predict(X_poly), color = 'blue')
plt.plot(X, lin_reg_1.predict(X), color = 'green')
plt.title('Truth or Bluff (Polynomial Regression)')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()

 

print('salary = %.2f * level + %.2f * level^2 + %.2f * level^3 + %.2f * level^4 + %.2f' %(lin_reg_2.coef_[1], lin_reg_2.coef_[2], lin_reg_2.coef_[3], lin_reg_2.coef_[4], lin_reg_2.intercept_))

 

多项式回归就是在线性回归的基础上让数据升维,即y=ax+b转为y=ax**2+ax**1+cx**0,本案例中degree = 4,则其表达式为y=ax**4+ax**3+ax**2+ax**1+cx**0。在升维之后使算法可以更好的拟合高纬度的数据。 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值