机器学习(六)——多项式回归及通过案例学习做预测的流程

本文介绍了在面对非线性数据时如何使用多项式回归进行特征转换,以解决线性模型拟合不足的问题。通过实例展示了不同维度下模型的拟合效果,强调了高维可能导致过拟合的风险。此外,还分享了一个保险案例,探讨了预测流程及其局限性,旨在帮助读者理解预测模型的构建过程。

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

1. 多项式回归Polynomial regression

有的时候我们的数据可能是非线性的变化,这个时候我们的线性模型就拟合不了了,怎么办呢?两种方法:
(1)用非线性的算法
(2)把数据变成线性的
而多项式回归是用来做特征转换的,就是用第二种方法
在这里插入图片描述
从上图中可以知道,多项式回归就是在升维(把两个维度的x变成里6个维度)
例如:
当原来只有两个维度x0,x1 升维度后(二阶)就变成了三个: x0, x1, x1^2 如果是三阶: x0, x1, x1 ^2, x1 ^3
原来只有三个维度:x0,x1,x2 升维后(二阶)六个维度:x0, x1, x2 ,x1^2, x2 ^2, x1x2 三阶:多个 x1 ^3 x2 ^3
原来又四个维度:x0, x1, x2, x3 升维后(二阶)十个: x0, x1,x2,x3, x1^2, x2 ^2, x3 ^2, x1
x2, x2x3, x1x3 三阶: 多个x1 ^3, x2 ^3, x3 ^3
代码实现:
我们线看一下非线性的数据

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

m = 100
X = 6 * np.random.rand(m, 1) - 3 #本来范围是(0,1)*6之后变成了(0,6),-3后变成了(-3,3)
# 有了平方,数据就不是线性的了(不是一条直线),
y = 0.5 * X ** 2 + X + 2 + np.random.randn(m, 1)# 相当于w0=2,w1=1,w3=0.5

plt.plot(X, y, 'b.')
plt.show()

在这里插入图片描述
从图中我们可以看出来它不是一条直线,是一条抛物线,非线性的

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

m = 100
X =</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值