线性回归(三)—— 多项式回归

多项式回归

目的

​ 多项式回归不再用直线拟合,而是使用曲线或曲面,我们要找的函数变成了 h ( x ) = θ 0 + θ 1 x + θ 2 x 2 + … θ n x n h(x) = \theta_0+\theta_1x+\theta_2x^2+…\theta_nx^n h(x)=θ0+θ1x+θ2x2+θnxn
还是要找到这些系数。

办法

​ 其实跟多元线性回归一模一样,把 x n x^n xn看成是 x n x_n xn就完事儿了,跟多元线性回归毫无区别,忘了就去看看多元线性回归那篇.
如果是多元的多项式回归,同样可以转化为多元的线性回归,道理一样。把非线性的项看成一个新的特征即可,多加几列而已。

一元多项式回归实现

# encoding:utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# 载入数据
data = np.genfromtxt("../data/job.csv", delimiter=',')
x_data = data[1:, 1, np.newaxis]
y_data = data[1:, 2, np.newaxis]
# 定义多项式回归
poly_reg = PolynomialFeatures(degree=4)  # degree代表多项式最高次数
# 特征处理
x_poly = poly_reg.fit_transform(x_data)
# 定义回归模型
lin_reg = LinearRegression()
lin_reg.fit(x_poly, y_data)

# 画图
plt.plot(x_data, y_data, 'g.')
# 把点搞得多一点,这样曲线看起来平滑一点
x_test = np.linspace(1, 10, 100)[:, np.newaxis]
plt.plot(x_test, lin_reg.predict(poly_reg.fit_transform(x_test)), c='brown')
plt.show()

多项式回归

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值