Python3入门机器学习 - 模型泛化

简介: 模型正则化在多项式回归中如果degree过大,会造成过拟合的情况,导致模型预测方差极大,因此,我们可以使用模型正则化的方式来减小过拟合导致的预测方差极大的问题即在我们训练模型时,不仅仅需要将预测的y和训练集的y的均方误差达到最小,还要使参数向量最小。

模型正则化


在多项式回归中如果degree过大,会造成过拟合的情况,导致模型预测方差极大,因此,我们可以使用模型正则化的方式来减小过拟合导致的预测方差极大的问题


img_0c35ff19d3f287da7f2e269cac50138b.png
img_a173fb687826456288b5fe93ba9ed75d.png

即在我们训练模型时,不仅仅需要将预测的y和训练集的y的均方误差达到最小,还要使参数向量最小。(即上图公式。)

使用岭回归达到最小方差


from sklearn.linear_model import Ridge

def RidgeRegression(degree,alpha):
    return Pipeline([
        ("poly",PolynomialFeatures(degree=degree)),
        ("scaler",StandardScaler()),
        ("ridge",Ridge(alpha=alpha))
    ])

ridge_reg = RidgeRegression(20,0.01)

ridge_reg.fit(X_train,y_train)
mean_squared_error(ridge_reg.predict(X_test),y_test)   #在degree=20的过拟合情况下,本来达到170的方差在模型正则化之后仅有一点几。

模型正则化的参数alpha即为公式中的α,即α越大,就代表训练过程中模型系数影响程度越大

使用Lasso回归达到最小方差


from sklearn.linear_model import Lasso

def RidgeRegression(degree,alpha):
    return Pipeline([
        ("poly",PolynomialFeatures(degree=degree)),
        ("scaler",StandardScaler()),
        ("ridge",Lasso(alpha=alpha))
    ])

ridge_reg = RidgeRegression(20,0.1)

ridge_reg.fit(X_train,y_train)
mean_squared_error(ridge_reg.predict(X_test),y_test) 
img_57b11f2e76d9610aba1b979763ea56c9.png
image.png

img_7b16cc7e0bceb159b7e48e8037685e19.png




Lasso与Ridge对比

如上图可见,Ridge在a很大时,所得预测曲线依然是曲线,但Lasso在a较大时,更倾向于变为一条直线,如果用梯度下降法的思想来考虑,这是因为在计算更优解时,Ridge的theta的斜率向量会让theta一直以一个比较平缓的梯度下降,然而Lasso的斜率向量则不然。而Lasso的这种特性会让更多的特征值的系数theta变为0,因此我们可以使用Lasso来进行特征值的过滤,即变为0的特征值是对模型影响较小的特征值。

目录
相关文章
|
4天前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
4天前
|
机器学习/深度学习 算法 数据挖掘
机器学习入门(二):如何构建机器学习模型,机器学习的三要素,欠拟合,过拟合
机器学习入门(二):如何构建机器学习模型,机器学习的三要素,欠拟合,过拟合
|
6天前
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
34 3
|
6天前
|
机器学习/深度学习 数据采集 分布式计算
【Python篇】深入机器学习核心:XGBoost 从入门到实战
【Python篇】深入机器学习核心:XGBoost 从入门到实战
27 3
|
6天前
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
21 2
|
6天前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
14 1
|
3天前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
24天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
51 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
4天前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
4天前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)