• 欠拟合和过拟合


    过拟合

            定义:具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。
    具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型过于复杂。

    过拟合的原因

    1. 训练数据中噪音干扰过大,使得学习器认为部分噪音是特征从而扰乱学习规则。
    2. 建模样本选取有误,例如训练数据太少,抽样方法错误,样本label错误等,导致样本不能代表整体。
    3. 模型不合理,或假设成立的条件与实际不符。
    4. 特征维度/参数太多,导致模型复杂度太高。

    解决办法

    正则化

    欠拟合

            定义:欠拟合是指对训练样本的一般性质尚未学好。在训练集及测试集上的表现都不好。

     

     欠拟合的原因

    1 模型复杂度过低
    2 特征量过少

    解决办法

    增加数据的特征数量

    4.3.1 带有L2正则化的线性回归——岭回归

    岭回归也是一种线性回归,不过在算法建立回归方程的时候,加上正则化的限制,从而达到解决过拟合的效果

    1 API 

    sklearn.linear_model.Ridge(alpha=1.0, fit_intercept = True, solve="auto",normalize=False)

    • 具有L2正则化的线性回归
    • alpha 正则化力度,也叫入  取值0~1  1~10
    • solver 会根据数值自动选择优化方法,sag如果数据集特征值都比较大,选择该随机梯度下降优化
    • normalize  数据是否进行标准化  normalize=False,可以在fit之前调用preprocseeing.StandardScalse标准化数据
    • Ridge.coef_ 回归权重
    • Ridge.intercept_ 回归偏置

    Ridge方法相当于SGDRegressor(penalty='l2',loss="squared_loss")只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了SAG)

    sklearn.linear_model.RidgeCV(_BaseRidgeCV,RegressorMixin) 具有l2正则化的线性回归,可以进行交叉验证  coef_:回归系数

    1. def linea3():
    2. """
    3. 岭回归对波士顿房价进行预测
    4. :return:
    5. """
    6. # 1)获取数据
    7. boston = load_boston()
    8. print("特征数量:\n", boston.data.shape)
    9. # 2)划分数据集
    10. x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    11. # 3)标准化
    12. transfer = StandardScaler()
    13. x_train = transfer.fit_transform(x_train)
    14. x_test = transfer.transform(x_test)
    15. # 4)预估器
    16. estimator = Ridge()
    17. estimator.fit(x_train, y_train)
    18. # 5)得出模型
    19. print("岭回归的权重系数:\n", estimator.coef_)
    20. print("岭回归的偏置为:\n", estimator.intercept_)
    21. # 6)模型评估
    22. y_predict = estimator.predict(x_test)
    23. print("预测房价:\n", y_predict)
    24. error = mean_squared_error(y_test, y_predict)
    25. print("岭回归-均方误差为:\n", error)
    26. return None
    27. if __name__ == "__main__":
    28. # 代码1:正规方程的优化方法对波士顿房价进行预测
    29. linea1()
    30. # 代码2:梯度下降的优化方法对波士顿房价进行预测
    31. linea2()
    32. # 代码3:岭回归对波士顿房价进行预测
    33. linea3()

     

     

  • 相关阅读:
    IIC总线概述和通信时序代码详细图文解析
    【C/PTA】顺序结构专项练习
    华为云云耀云服务器L实例评测 | MacOS系统-宝塔建站
    前端进击笔记第三节 CSS:页面布局的基本规则和方式
    云文档-本地批量删除文件的BUG和路径修改BUG
    AWS CloudFormation
    Explain 执行计划中的 type 字段
    git clone和git init git pull 的一点问题
    Java设计模式之建造者模式
    pyclipper和ClipperLib操作多边型
  • 原文地址:https://blog.csdn.net/m0_62329504/article/details/126380720