机器学习(三)多项式回归

一、原理

 

        原型公式:y=b_{0}+b_{1}x_{1}+b_{2}x_{1}{2}+b_{n}x_{1}{n}

                与多项式回归的区别:仅有一个自变量,次方数不同

        适用情况:

        属于线性回归的原因:线性并不是对于图线而言,是对于y是否能由自变量线性表达

二、Python处理

        从模型角度:多项式回归为非线性模型

        ①设置工作路径

        ②数据预处理

        ③多项式回归模型的建立和拟合

--用于参照的线性回归模型
from sklearn.Liner_model import LinearRegession
Lin_reg=LinearRegression()    --线性回归对象
Lin_reg.fit(x,y)    --拟合

--多项式回归模型
    --矩阵转换
from sklearn.preprocessing import PoltnomialFeatures
poly_reg = PolnomialFeatures(degeree=2)    --用于将自变量替换为其更高阶的矩阵(示例为2次)
x_poly = poly_reg.fit_transform(x)    --转换

    --模型构造
lin_reg_2 = LinearRegression()
Lin_reg_2.fit(x_poly,y)

--绘制模型
plt.sactter(x,y,color='red')    --绘点
plt.plot(x,lin_reg.predict(x),color='blue')    --线性回归图像
plt.title('真假?(线性模型)')
plt.xlabel('职位水平')
plt.ylabel('薪水')

--绘制模型
plt.sactter(x,y,color='red')    --绘点
plt.plot(x,lin_reg_2.predict(poly_reg.fit_transform(x)),color='blue')
    --多项式回归图像
plt.title('真假?(多项式模型)')
plt.xlabel('职位水平')
plt.ylabel('薪水')

         模拟结果已经好了很多,但是拟合度还有待提高。可以通过升高多项式的次数来提升拟合度

poly_reg = PolnomialFeatures(degeree=4)    --模型次数升高为4

        由于x轴间距过大,导致图像不够平缓,可以通过缩小点间距使得图像更为平整

x_grid = np.arange(min(x),max(x),0.1)    --最小值、最大值、步距
x_grid = x_grid.reshape(len(x_grid),1)    --转换为矩阵

--绘制模型
plt.sactter(x,y,color='red')    --绘点
plt.plot(x_grid,lin_reg_2.predict(poly_reg.fit_transform(x_grid)),color='blue')
    --多项式回归图像
plt.title('真假?(多项式模型)')
plt.xlabel('职位水平')
plt.ylabel('薪水')

         ④进行预测

lin_reg.predict(6.5)    --线性模型预测
    --误差较大

lin_reg_2.predict(poly_reg.fit_transform(6.5))
    --误差较小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值