正则化 与 cross validation

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

Overfitting:

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

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

 正则化 与 cross validation_第1张图片

解决 overfitting 的方法:

正则化

减少训练轮数

增加训练集

 

正则化:

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

正则化 与 cross validation_第2张图片

正则话 分为 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。当数据很少的时候,可以这样做。

 

你可能感兴趣的:(机器学习)