斯坦福机器学习笔记三

来源:互联网 发布: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)是一个常用的S型函数,公式为:

g(z)=11+ez

该函数的图像为:

这里写图片描述

假设函数 h θ (x) 的作用是,对于给定的输入变量,根据选择的参数计算输出变量等于1的可能性,即:

hθ(x)=P(y=1|x;θ)

举个栗子:如果对于给定的x,通过拟合出来的假设函数计算得出 h θ (x)=0.7 ,则表示有70%的几率 y 为正类,有30%的几率为负类。

从上面的S形函数的图像我们知道,

z= θ TX0 时, h θ =g(z)0.5
z= θ TX0 时, h θ =g(z)0.5

因此,在逻辑回归中,我们预测:

h θ 0.5 时,也就是 z= θ TX0 时,y=1;
h θ 0.5 时,也就是 z= θ TX0 时,y=0;

在这里,z= θ TX=0 的这条线则被称为决策边界。

有时候为了适应非常复杂形状的判定边界,会使用非常复杂的模型,即  θ TX 有可能是多项式。

这里写图片描述

如图所示,这种分类问题的假设函数会是:

hθ=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22)

参数是:[-1,0,0,1,1]。

对于逻辑回归算法代价函数的定义,如果我们沿用线性回归算法的定义,即代价函数是所有输出变量与预测值之间误差的平方和,那么我们得到的代价函数会是一个非凸函数,这意味着它会有许多局部最小值,会影响梯度下降算法寻找到全局最小值。

因此重新定义逻辑回归的代价函数为:

J( θ )=1mmi=1Cost(hθ(x(i)),y(i))

其中:

这里写图片描述

hθ(x)Cost(hθ(x),y) 之间的关系如下图所示:

这里写图片描述

这样构建的 Cost 函数的特点是:当输出变量 y 的值等于假设函数 h 的值时, Cost 函数值为 0;当输出变量 y 的值与假设函数 h 的值不相等时,Cost 函数值为无穷大。

将 Cost 函数化简代入代价函数,得到新的逻辑回归的代价函数:

J( θ )=1mmi=1[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

使用梯度下降算法来求使得代价函数最小的参数 θ:

Repect {

θj:=θjαθj J(θ)
}

求导化简后得到:

Repect {

θj:=θjα1mmi=1((hθ(x(i))y(i))x(i)j)
}

看上去它是和线性回归梯度下降的迭代是一样的,但实际上,它们的假设函数是不同的。线性回归的假设函数是:

hθ(x)=θTX

而现在逻辑回归的假设函数是:

h θ (x)=11+e θ TX

因此它们的梯度下降算法是不同的。

之前我们讨论的都是二分类问题,现在考虑多分类问题。对于多分类问题,可以采用一对多的分类思想,将问题分成两类:其中一类和其余类。首先先将多个类中的一个类标记为正类(y=1),将其余类标记为负类(y=0),拟合出分类器,并记下每个类的分类概率;然后继续选择下一类标记为正类,其余类标记为负类,继续拟合,依次类推;最后对于输入的变量,我们取它分类概率最高的那类为其所在类。

这里写图片描述

正则化

如果我们有非常多的特征,通过学习得到的假设函数能够非常好的适应训练集(代价函数可能几乎为 0 ),但是不能推广到新的数据,对于新输入的变量进行预测时,可能效果会很不好,这种现象称为过拟合。欠拟合刚好相反, 如下图所示,第一个模型是线性模型,不能很好的适应我们的训练集,被称为是欠拟合;第三个模型是过拟合;第二个模型似乎是最适合的。

这里写图片描述

分类问题也存在过拟合现象,第三个图就是过拟合。

这里写图片描述

解决过拟合的方法一般有两种:

一是减少一些不能帮助正确预测的特征,可以手工选择,也可以使用一些模型选择算法来帮忙,例如 PCA 。
二是正则化,保留所有的特征,但是在一定程度上减小参数  θ j 的值。

正则化思想是:对特征进行惩罚,即减小特征参数的值。当我们有非常多的特征,不知道应该减小哪个特征时,就对所有的特征进行惩罚,即对除了  θ 0 以外的所有参数进行惩罚,在代价函数中引入惩罚因子:

J( θ )=12m[mi=1(hθ(x(i))y(i))2+ λ nj=1θ2j]

其中,λ是正则化参数,合理的选择正则参数非常重要。如果正则化参数过大,则会把所有的参数都最小化,导致假设函数变成:hθ(x)=θ0 ,造成欠拟合。如果正则化参数过小,又无法避免过拟合现象。

在正则化后的代价函数中,既要保证原代价函数值最小,又要保证新加上的惩罚最小,这样就保证了高次方的系数特别小,几乎可以忽略,从而避免了过度拟合现象。

1、正则化线性回归

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

J( θ )=12m[mi=1(hθ(x(i))y(i))2+ λ nj=1θ2j]

如果使用梯度下降法求使代价函数最小的参数,因为未对  θ 0 进行正则化,所以梯度下降法中的参数 θ 的迭代分为两种情况:

Repect {

θ0:=θ0α1mmi=1(hθ(x(i))y(i))
θj:=θjα(1mmi=1(hθ(x(i))y(i))x(i)j+λmθj)     j{1,2n}
}

化简可以得到:

θj:=θj(1αλm)α1mmi=1(hθ(x(i))y(i))x(i)j 

如果使用正规方程法求解假设函数,方法如下:

 θ =XTX+λ0 11 1 1XTy

上式中的矩阵尺寸为(n+1)*(n+1)。

2、正则化逻辑回归算法

正则化逻辑回归算法的代价函数为:

J( θ )=1mmi=1[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+λ2mnj=1θ2j

使用梯度下降法最小化代价函数,其参数的迭代为:

Repect {

θ0:=θ0α1mmi=1(hθ(x(i))y(i))
θj:=θjα1mmi=1((hθ(x(i))y(i))x(i)j+λmθj)    j{1,2n}
}

2 0
原创粉丝点击