ML常用技巧 RegularizationModification of the logistic regression to the SVM图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键 Regularization

Overfitting
通常来说,当feature的个数非常多时,非常容易发生overfitting现象。先说underfitting,当model不能很好的反应数据中的规律时,我们可以说发生了underfitting,正如下图中最左侧的图一样。而当feature的个数非常多时,可以通过调整参数,使得训练后的模型刚好可以代表每一个点的特性。而如果此时的model又不具有描述新数据的关系,那么就发生了overfitting。正如下面最右侧的图。下面中间的图可以认为是一种“刚刚好”的状态。

underfitting justright and overfitting for linear regression

上图给了一个关于线性回归的例子,下面可以再看一个逻辑回归中发生underfitting 和 overfitting的例子。

underfitting justright and overfitting for logistic regression

有些时候我们有很多很多量可以供我们分析,来训练我们的model,比方说预测房子的价格。

然而,当feature的个数特别多的时候,就容易发生overfitting。但也有一些相应的解决办法,比如

– 手动的选择一些feature
– 使用model selection algorithm
– Regularization :
– 保留所有的feature,但是要降低feature对应的参数 θj θ j 的值
– 这种方法当feature的个数非常多的时候很有效,每一个feature都对预测贡献一点点而已。

于是我们可以再cost function中加入一项 λ∑nj=1θ2j λ ∑ j = 1 n θ j 2 ,来约束这些参数的大小。对于线性回归来说,新的cost function就变成了

J(θ)=12m∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθ2j, J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ,
而对于逻辑回归来说,新的cost function就变成了。
J(θ)=−1m∑i=1m(y(i)log(1−hθ(x(i)))+(1−y(i))loghθ(x(i)))+λ2m∑j=1nθ2j. J ( θ ) = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ ( 1 − h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ h θ ( x ( i ) ) ) + λ 2 m ∑ j = 1 n θ j 2 .

需要注意的是, λ∑nj=1θ2j λ ∑ j = 1 n θ j 2 中不包含bias term θ0 θ 0 ,即 j j <script type=”math/tex” id=”MathJax-Element-759″>j</script>的值是从1开始取的。