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

作者: c6ad47dbfc82 | 来源:发表于2018-03-10 00:33 被阅读32次

模型正则化


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


即在我们训练模型时,不仅仅需要将预测的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) 
image.png



Lasso与Ridge对比

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

相关文章

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

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

  • [机器学习入门] 李宏毅机器学习笔记-25(Sturctured

    [机器学习入门] 李宏毅机器学习笔记-25(Sturctured Linear Model;结构化预测-线性模型)...

  • 第二章 模型评估与选择 (需要概率论和数理统计知识)

    机器学习最终目标就是希望得到泛化误差比较小的模型, 如何利用现有的数据得到泛化误差小的模型以及模型评价的量化标准...

  • 机器学习评估方法

    机器学习的目的是产生泛化能力好的模型,那么什么样的模型才是泛化能力好的模型呢,这需要按照一定的评估方法和度量指标去...

  • 机器学习 Chapter 1 绪论

    **机器学习 **:在计算机上从数据中产生“模型”(model)的算法,即“学习算法” 泛化:学得模型适用于新样本...

  • 机器学习-数据集

    对于机器学习,我们真正感兴趣的是泛化 通过inference, 我们的模型可以很好地泛化到之前未出现的新数据 但是...

  • Indicator of Generalization

    机器学习中至关重要的问题就是如何衡量模型的泛化能力,泛化能力的强弱直接度量了算法是否学习到了对任务真正重要的特征。...

  • 机器学习路径

    1. 机器学习入门课程实操: imooc 上《python3入门机器学习,经典算法与应用》——刘宇波 附带该项目G...

  • 常用的机器学习模型评估指标

    对机器学习模型的泛化性能进行评估,通常需要衡量模型的泛化能力,也就是性能度量。常见的性能度量指标包括:准确率,查准...

  • 机器学习的性能度量

    机器学习评估方法讲的是可行的实验估计方法。而为了评价模型的泛化能力,不仅需要可行的实验估计方法,还需要有衡量泛化能...

网友评论

    本文标题:Python3入门机器学习 - 模型泛化

    本文链接:https://www.haomeiwen.com/subject/omfvfftx.html