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

本文深入讲解了多项式回归的概念,其目标是通过曲线而非直线来拟合数据,从而提高预测精度。文章详细介绍了如何将多项式回归转换为多元线性回归问题,并提供了Python代码实例,演示了一元多项式回归的具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多项式回归

目的

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

办法

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

一元多项式回归实现

# 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()

多项式回归

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值