zoukankan      html  css  js  c++  java
  • 机器学习——正规方程,正则化

    一、正规方程(Normal equation):

    对于某些线性回归问题,正规方程方法很好解决;

    (frac{partial}{partial heta_j}J( heta_j)=0),假设我们的训练集特征矩阵为 X(包含了 x0)并且我们的训练集结果为向量 y,则利用正规方程解出向量 ( heta=(X^TX)^{-1}X^Ty)

    注意:((X^TX)^{-1}) 如果特征数量n较大,运算代价就很大,一般小于10000即可;只适用于线性模型;

    二、正则化:

    解决过拟合问题:

    1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA

    2.正则化。 保留所有的特征,但是减少参数的大小(magnitude)。

    如果我们的模型是:(h_ heta(x)= heta_0x_0^0+ heta_1x_1^1+...+ heta_nx_n^n)

    正是这些高次项导致了过拟合的产生,所以去减小他们系数的大小就好了。修改代价函数,给他们的系数设置惩罚;

    修改后的代价函数:(J( heta)=frac{1}{2m}[sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})^2+lambdasum_{j=1}^n heta_j^2])

    其中(lambda)称作正则化参数,需要对哪个参数惩罚,就把他们加进去,默认全加上。

    因为如果我们令(lambda)的值很大的话,为了使Cost Function 尽可能的小,( heta_j)的值都会在一定程度上减小 。。。

    (备注: ( heta_0)不参与其中的任何一个正则化 )

    2.1正则线性回归的代价函数为:

    (J( heta)=frac{1}{2m}sum_{i=1}^m[((h_ heta(x^{(i)}-y^{(i)})^2+lambdasum_{j=1}^n heta_j^2)])

    求得更新式子为:( heta_j:= heta_j(1-afrac{lambda}{m})-afrac{1}{m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})x_j^{(i)}) 可以看出,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令 ( heta)值减少了一个额外的值。

    若用正规方程求解:

    2.2正则逻辑回归的代价函数为:

    (J( heta)=frac{1}{m}sum_{i=1}^m[-y^{(i)}log(h_ heta(x^{(i)}))-(1-y^{(i)})log(1-h_ heta(x^{(i)}))]+frac{lambda}{2m}sum_{j=1}^n heta_j^2)

    梯度更新式子和正则线性的一样的注:看上去同线性回归一样,但是知道 (h_ heta(x)=g( heta^TX)) ,所以与线性回归不同。

  • 相关阅读:
    Linux进阶之bond链路聚合
    Linux服务之cobbler批量部署篇
    Linux进阶之排错
    shell基础之综合练习
    shell基础之99乘法表
    Linux进阶之VMware Linux虚拟机运行提示“锁定文件失败 虚拟机开启模块snapshot失败”的解决办法
    Linux服务之DNS服务篇
    linux服务之NTP及chrony时间同步
    八大排序算法汇总
    堆排序
  • 原文地址:https://www.cnblogs.com/daizigege/p/12250114.html
Copyright © 2011-2022 走看看