正则化 与 cross validation

在所有机器学习的问题上都要采用以下方法

Overfitting:

得到的模型随着训练轮数或者别的超参数的改变,在 training data 上的错误率肯定是越来越低的。但是这么做会出现overfitting的情况。

为了解决这个情况,从 training data 中分出来一个 validation set。在每次训练之后,看一下在 validation set 上的表现。如果在training data 上错误率下降,但是在validation data 上错误率反而上升,则说明出现了 overfitting

 

解决 overfitting 的方法:

正则化

减少训练轮数

增加训练集

 

正则化:

机器学习中的一个规律,如果参数的 weight 越大,那么这个模型就越复杂,越容易出现 overfitting。所以如果想要限制参数的复杂程度,就应该限制 weight 的大小。

正则话 分为 1-norm 和 2-norm。 区别在于 weight 的degree。

2-norm 限定了最大的 weight, 1-norm 限定了所有的 weight。故 2-norm 会得到一个稀疏矩阵, 1-norm 会得到一个非系数矩阵。

 但是都要加一个 正则化系数 R。当R 增大时, weight 会减小。当R 变为无穷大,训练出来的 weight 就全是 0 了。

R 是 hyper parameter 需要通过 cross validation 来取值。代码中:

cross_val_socre(LogisticRegression(C = 1e5), X, y, scoring = 'accuracy', cv = 10)
# cv 表示 cross validation 分成 10 份
# C 表示 R 的倒数。调 C 就是 调 R。 C 越小,表示 R 越大

 

validation set 是ML 过程中必不可少的!!!!!!!!!!!

 

实施 validation set 的方法是 cross validation

K次验证的平均错误率作为整个模型的错误率。其目的是调超参数

极端 cross validation:(left one out)

每次只拿一个做 validation, 其他全做 training。当数据很少的时候,可以这样做。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值