zoukankan      html  css  js  c++  java
  • 正则化系数

    正则化 --在原有损失函数的基础上加上一个正则化项

    通常用到的有均方根误差rmse和平均绝对误差mae

    通过限制参数过多或者过大,避免模型更加复杂,简单来说就是降低模型的泛化错误率,避免模型过拟合

    L1与L2的区别

    L1可以实现让参数矩阵稀疏, 且L1正则化的损失函数不不是连续可导的,

    L2也称岭回归功效是解决过拟合问题。当模型过于复杂,就会容易出现过拟合

    L1范数惩罚(参数稀疏性惩罚),所有参数的绝对值之和,对应Lasso回归;

    原有的损失函数(loss function)后面加一个正则化项(regularizer)

    L2范数惩罚(权重衰减惩罚),所有参数的平方和,对应岭回归

    在Python中调用

    from sklearn.linear_model import LogisticRegression as LR包中

    LR(penalty="l1", solver="liblinear",C=0.5,max_iter=1000)

    penalty默认情况下是l2,

    当选择L2后模型还是过拟合又或者因为模型的特征过多,想通过转换成稀疏矩阵的方式可选L1

    矩阵的稀疏性:通俗的解释是,剔除一些不是重要的特征从而减少时间与空间的复杂

    讲讲正则化为什么能降低过拟合程度,并且说明下下L1正则化和L2正则化

    降低过拟合程度:

    正则化之所以能够降低过拟合的原因在于,正则化是结构风险最小化的一种策略实现。

    给loss function加上正则化项,能使得新得到的优化目标函数h = f+normal,需要在f和normal中做一个权衡(trade-off),如果还像原来只优化f的情况下,那可能得到一组解比较复杂,使得正则项normal比较大,那么h就不是最优的,因此可以看出加正则项能让解更加简单,符合奥卡姆剃刀理论,同时也比较符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度,得到更小的泛化误差,降低过拟合程度。

    L1正则化和L2正则化:

    L1正则化就是在loss function后边所加正则项为L1范数,加上L1范数容易得到稀疏解(0比较多)。L2正则化就是loss function后边所加正则项为L2范数的平方,加上L2正则相比于L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(但不是等于0,所以相对平滑)的维度比较多,降低模型的复杂度。

  • 相关阅读:
    Linux阶段总结
    Java基础单词总结
    毕业设计
    tips: ubuntu apt sources.list 设置
    Java编程从0到1系列 目录
    EnvironmentError: mysql_config not found
    pyenv 2.7 环境安装MySQL-python ERROR
    dtd语法规则
    HashMap和HashTable之间的区别
    Vector(同步)和ArrayList(异步)异同
  • 原文地址:https://www.cnblogs.com/jing-yan/p/12532596.html
Copyright © 2011-2022 走看看