多项式回归 与 模型泛化

什么是多项式回归

多项式回归思路与多元线性回归相似,只是为原来的数据样本添加新的特征,而新的特征是原有特征的多项式组合。在线性回归不能很好的拟合现有数据的情况下,可能对某一特征进行平方、立方之后得到的曲线可以很好地拟合数据,这种回归方式就称为多项式回归。

scikit-learn中的多项式回归与pipeline

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

# 模拟数据集
x = np.random.uniform(-2, 3, size=100)
X = x.reshape(-1, 1)
y = 0.5 * x**2 + x + 2 + np.random.normal(0, 1, 100)

# 为数据集增加特征(原特征只有一个)
poly = PolynomialFeatures(degree=2)
poly.fit(X)
X2 = poly.transform(X)
print(X2.shape)

# 使用线性回归进行预测
lin_reg = LinearRegression()
lin_reg.fit(X2, y)
y_predict = lin_reg.predict(X2)
print(lin_reg.coef_)

# 使用pipeline
poly_reg = Pipeline([
    ('poly', PolynomialFeatures(degree=2)),
    ('std_scaler', StandardScaler()),
    ('lin_reg', LinearRegression())
])

poly_reg.fit(X, y)
y_predict = poly_reg.predict(X)

过拟合与欠拟合

过拟合指的是模型对于训练数据拟合程度过当的情况。

某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。

过拟合更可能在无参数非线性模型中发生,因为学习目标函数的过程是易变的具有弹性的。同样的,许多的无参数器学习算法也包括限制约束模型学习概念多少的参数或者技巧。

欠拟合指的是模型在训练和预测时表现都不好的情况。

一个欠拟合的机器学习模型不是一个良好的模型并且由于在训练数据上表现不好这是显然的。

欠拟合通常不被讨论,因为给定一个评估模型表现的指标的情况下,欠拟合很容易被发现。矫正方法是继续学习并且试着更换机器学习算法。虽然如此,欠拟合与过拟合形成了鲜明的对照。

为什么要训练数据集与测试数据集

过拟合的解决方式:使用训练数据集、测试数据集进行模型的选择。
即使用训练数据集进行模型训练,而我们选择在测试数据集上得到的误差更小的模型,而非对训练数据集拟合更好的模型。模型在测试数据集上的预测能力称为泛化能力
模型准确率与模型复杂度的关系:
在这里插入图片描述
实际上,这是一个模型随复杂度的提高,从欠拟合到拟合到过拟合变化的过程。机器学习的主要工作,也就是找到泛化能力最好的地方。

学习曲线

从学习曲线的角度来看过拟合与欠拟合
学习曲线:随着训练样本的逐渐增多,算法训练出的模型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值