线性回归模型中的过拟合比较及不同模型的比较,python实现

本文探讨了回归模型中的过拟合问题,通过示例展示了线性回归从1阶到9阶多项式拓展如何引发过拟合,使得模型在训练集上表现好,但在测试集上得分降低。同时,对比了岭回归、lasso回归和弹性网络回归等模型,这些加入正则化的模型在防止过拟合方面表现更优。

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

在进行回归模型预测时,当变量间的线性关系不足,会出现欠拟合,即模型得分低,决定系数低,于是我们可以进行多项式拓展来提升模型的准确性,但是随着多项式拓展阶数的提升,很容易产生过拟合,即由于模型过分契合训练集,导致测试集的得分反而低,这便是我们需要关注的过拟合

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import warnings
import sklearn
from sklearn.linear_model import LinearRegression, LassoCV, RidgeCV, ElasticNetCV
from sklearn.preprocessing import PolynomialFeatures#数据预处理,标准化
from sklearn.pipeline import Pipeline
from sklearn.linear_model.coordinate_descent import ConvergenceWarning

## 创建模拟数据
np.random.seed(100)
np.set_printoptions(linewidth=1000, suppress=True)#显示方式设置,每行的字符数用于插入换行符,是否使用科学计数法
N = 10
x = np.linspace(0, 6, N) + np.random.randn(N)
y = 1.8*x**3 + x**2 - 14*x - 7 + np.random.randn(N)
## 将其设置为矩阵
x.shape = -1, 1
y.shape = -1, 1

## RidgeCV和Ridge的区别是:前者可以进行交叉验证;
#分别给定线性回归,岭回归,lasso回归,以及弹性网络回归四种模型,包括其回归及多项式拓展
models = [
    Pipeline([
            ('Poly', PolynomialFeatures(include_bias=False)),
            ('Linear', LinearRegression(fit_intercept=False))
        ]),
    Pipeline([
            ('Poly', PolynomialFeatures(include_bias=False)),
            # alpha给定的是Ridge算法中,L2正则项的权重值,也就是ppt中的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值