斯坦福机器学习笔记三
来源:互联网 发布:039什么意思网络用语 编辑:程序博客网 时间:2024/05/17 22:59
逻辑回归算法
在分类问题中,需要预测的变量 y 的值是离散值,首先讨论的是二元分类问题。在二元分类问题中,输出变量 y 有两个值:0 和 1,标记为 0 的类叫做负类;标记为 1 的类叫做正类 。我们希望分类器的输出值在 0 到 1 之间,因此这里提出了逻辑回归算法,该算法的假设函数的输出变量范围始终在 0 到 1 之间。
逻辑回归算法的假设函数是:
h θ (x)=g( θ TX)=11+e− θ TX
g(z)=11+e−z
该函数的图像为:
假设函数
hθ(x)=P(y=1|x;θ)
举个栗子:如果对于给定的x,通过拟合出来的假设函数计算得出
从上面的S形函数的图像我们知道,
z= θ TX≥0 时,h θ =g(z)≥0.5 ;
z= θ TX≤0 时,h θ =g(z)≤0.5 ;
因此,在逻辑回归中,我们预测:
h θ ≥0.5 时,也就是z= θ TX≥0 时,y=1;
h θ ≤0.5 时,也就是z= θ TX≤0 时,y=0;
在这里,
有时候为了适应非常复杂形状的判定边界,会使用非常复杂的模型,即
如图所示,这种分类问题的假设函数会是:
hθ=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22)
参数是:[-1,0,0,1,1]。
对于逻辑回归算法代价函数的定义,如果我们沿用线性回归算法的定义,即代价函数是所有输出变量与预测值之间误差的平方和,那么我们得到的代价函数会是一个非凸函数,这意味着它会有许多局部最小值,会影响梯度下降算法寻找到全局最小值。
因此重新定义逻辑回归的代价函数为:
J( θ )=1m∑mi=1Cost(hθ(x(i)),y(i))
其中:
这样构建的 Cost 函数的特点是:当输出变量 y 的值等于假设函数 h 的值时, Cost 函数值为 0;当输出变量 y 的值与假设函数 h 的值不相等时,Cost 函数值为无穷大。
将 Cost 函数化简代入代价函数,得到新的逻辑回归的代价函数:
J( θ )=−1m∑mi=1[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
使用梯度下降算法来求使得代价函数最小的参数 θ:
Repect {
θj:=θj−α∂∂θj J(θ)
}
求导化简后得到:
Repect {
θj:=θj−α1m∑mi=1((hθ(x(i))−y(i))⋅x(i)j)
}
看上去它是和线性回归梯度下降的迭代是一样的,但实际上,它们的假设函数是不同的。线性回归的假设函数是:
hθ(x)=θTX
而现在逻辑回归的假设函数是:
h θ (x)=11+e− θ TX
因此它们的梯度下降算法是不同的。
之前我们讨论的都是二分类问题,现在考虑多分类问题。对于多分类问题,可以采用一对多的分类思想,将问题分成两类:其中一类和其余类。首先先将多个类中的一个类标记为正类(y=1),将其余类标记为负类(y=0),拟合出分类器,并记下每个类的分类概率;然后继续选择下一类标记为正类,其余类标记为负类,继续拟合,依次类推;最后对于输入的变量,我们取它分类概率最高的那类为其所在类。
正则化
如果我们有非常多的特征,通过学习得到的假设函数能够非常好的适应训练集(代价函数可能几乎为 0 ),但是不能推广到新的数据,对于新输入的变量进行预测时,可能效果会很不好,这种现象称为过拟合。欠拟合刚好相反, 如下图所示,第一个模型是线性模型,不能很好的适应我们的训练集,被称为是欠拟合;第三个模型是过拟合;第二个模型似乎是最适合的。
分类问题也存在过拟合现象,第三个图就是过拟合。
解决过拟合的方法一般有两种:
一是减少一些不能帮助正确预测的特征,可以手工选择,也可以使用一些模型选择算法来帮忙,例如 PCA 。
二是正则化,保留所有的特征,但是在一定程度上减小参数
正则化思想是:对特征进行惩罚,即减小特征参数的值。当我们有非常多的特征,不知道应该减小哪个特征时,就对所有的特征进行惩罚,即对除了
J( θ )=12m[∑mi=1(hθ(x(i))−y(i))2+ λ ∑nj=1θ2j]
其中,λ是正则化参数,合理的选择正则参数非常重要。如果正则化参数过大,则会把所有的参数都最小化,导致假设函数变成:
在正则化后的代价函数中,既要保证原代价函数值最小,又要保证新加上的惩罚最小,这样就保证了高次方的系数特别小,几乎可以忽略,从而避免了过度拟合现象。
1、正则化线性回归
正则化线性回归的代价函数为:
J( θ )=12m[∑mi=1(hθ(x(i))−y(i))2+ λ ∑nj=1θ2j]
如果使用梯度下降法求使代价函数最小的参数,因为未对
Repect {
θ0:=θ0−α1m∑mi=1(hθ(x(i))−y(i))
θj:=θj−α(1m∑mi=1(hθ(x(i))−y(i))⋅x(i)j+λmθj) j∈{1,2…n}
}
化简可以得到:
θj:=θj(1−αλm)−α1m∑mi=1(hθ(x(i))−y(i))⋅x(i)j
如果使用正规方程法求解假设函数,方法如下:
θ =⎛⎝⎜⎜XTX+λ⎡⎣⎢⎢0 11⋱ 1 ⎤⎦⎥⎥⎞⎠⎟⎟−1XTy
上式中的矩阵尺寸为(n+1)*(n+1)。
2、正则化逻辑回归算法
正则化逻辑回归算法的代价函数为:
J( θ )=−1m∑mi=1[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]+λ2m∑nj=1θ2j
使用梯度下降法最小化代价函数,其参数的迭代为:
Repect {
θ0:=θ0−α1m∑mi=1(hθ(x(i))−y(i))
θj:=θj−α1m∑mi=1((hθ(x(i))−y(i))⋅x(i)j+λmθj) j∈{1,2…n}
}
- 斯坦福机器学习笔记三
- 斯坦福机器学习公开课笔记(三)--逻辑回归
- 斯坦福机器学习笔记 第1周 三、线性代数回顾
- 斯坦福机器学习笔记一
- 斯坦福机器学习笔记二
- 斯坦福机器学习笔记四
- 斯坦福机器学习笔记五
- 斯坦福机器学习笔记六
- 斯坦福机器学习笔记七
- 斯坦福机器学习笔记八
- 斯坦福机器学习笔记九
- 斯坦福机器学习笔记十
- 斯坦福机器学习笔记十一
- 斯坦福机器学习笔记十二
- 斯坦福CS231N机器学习笔记
- 斯坦福机器学习笔记_1
- 斯坦福机器学习笔记01
- 斯坦福机器学习课程 Exercise 习题三
- canvas系列教程2-基本知识
- 链表5:复杂链表的复制
- 使用adb命令操作数据库
- HTML5教程从入门到精通及网站源码下载
- Matlab
- 斯坦福机器学习笔记三
- CodeForces 750H. New Year and Snowy Grid
- 五一劳动节,大家都去哪玩呢?
- 链表6:两个链表的第一个公共结点
- hdu2844_多重背包
- 链表7:链表中环的入口结点
- hdu1263(map(自己定义的数据结构的map))
- ShaderAPI
- https详解