逻辑回归:
当我们的预测值y是离散值时,线性回归这种连续型函数是不适合的,我们需要创造一种称为逻辑回归的学习算法。这种学习算法最广泛的应用是在分类问题上。
逻辑回归函数假设:
假设我们要设计一个分类器,使得我们的输出在[0,1]之间,传统线性回归函数不能将预测值限制在一个范围内,我们可以假设预测函数为如下形式:
其图像为:
纵坐标表示当前x的预测值为1的概率。
这样可以使得,预测函数的值限制在[0,1]内。
Sigmoid function = logistic function
决策边界:
实际上:z表示的为决策边界,即通过z来同行来对y进行分类。
拟合逻辑回归的参数theta.
对于一个有m个训练集的逻辑回归模型,其预测值为{0,1}。
如果我们使用类似于线性回归的cost function,因为我们逻辑回归的函数假设形式是:
所以,当我们使用类似类似于线性回归的方式,由于h(X)是介于(0,1)之间的数,所以cost function的图像有可能如下图所示:
为了使cost function更加平滑,因为假设函数形式为:
所以,我们设定的cost function如下形式:
如果训练数据的真实值为1,那么其为-log(h(X)),相反,如果训练数据的真实值为0,那么其为-log(1-h(X)),因为h(x)的值为预测值为1的可能性。
下面是一个完整cost function解释:
上述代价函数是进行分情况讨论,我们的需要是将代价函数合并到一个式子中去,我们可以这样写:
y*log(h(x))+(1-y)*log(1-h(x)) 当y等于1时,其和分情况讨论时的式子是一样的,当y等于0时其和分情况讨论时的式子也是一样的。
方法1:我们可以利用梯度下降算法进行min(J(theta)):
具体方法与线性回归的梯度下降算法一样
具体对于逻辑回归,方法如下:
当然还有其他方法(水平达不到,NG老师建议直接套用matlab的库就可以):
Conjugate gradient 共轭梯度法
BFGS 变尺度法
L-BFGS 限制变尺度法
示例:
假设有两个参数的逻辑回归:
在写好costfunction后可以使用matlab或者Octave的fminunc函数来进行优化,其基本用法是配置算法然后调用fminunc优化函数来优化计算costfunction一句exitflag来判定是否拟合。
多类分类问题:
现实生活中,大多数分类并不是分为两类,更多的是分为多类:
更直观:
当有多个分类的时候,有一种分类算法叫做one-vs-rest算法一对多算法,其算法思想是:
设计多个分类器,其中每个分类器过滤特定的类,如右图所示,其中被选出的类叫做正类,其余的类叫做负类,如右图所示h1(x)将所有三角形表示的类过滤出来。其中h1(x)表示在当前判定的点是三角形所在类的概率.
具体解释:
对于一个输入,选取所有假设函数中最大的,将结果分到对应的类中。
欠拟合和过拟合问题
欠拟合问题,是指由于考虑因素不够或者训练数据不够所出现的,预测函数与实际数据分布出现很大差异,如下图所示:
而另一种极端情况叫做过度拟合,其问题的原因是由于将一些可以忽略的影响因素过度考虑导致假设函数与训练数据过度重合:
虽然这种情况看起来非常准确,但是实时上在对新的数据进行预测时,其大多数会失败,也就是说这种预测函数没有皮鞭性。
同样,逻辑回归也会出现欠拟合和过度拟合的情况:
判定边界过于复杂时,如上图第三种情况,就会出现过度拟合的问题。
关于过度拟合问题的结局方案:
当影响因素过多时,画图基本上是一个不可能的事情,现有两种方法对过拟合的处理:
Options:
1. Reduce number of features.减少影响因数逇
― Manually select which features to keep.
― Model selection algorithm (later in course).
2. Regularization.(正规化)
― Keep all the features, but reduce magnitude/values of
parameters .
― Works well when we have a lot of features, each of
which contributes a bit to predicting .
减少影响因子的方法,过于繁琐,需要对每个影响因子进行逐个分析,如果影响因子数量在成千上万个的话,这个任务是不可能完成的。
正规化:
上图,左面假设函数已经很好的拟合,但是右边函数却过度拟合,想让右边的假设函数无线趋近于左边假设函数的样子,我们可以做的工作是使theta3和theta4无线趋近于0.
对于cost function来说,要找出合适的theta,所要做的工作是最小化cost function。
在原cost function的基础上对说要缩小的theta加上一个足够大的因子,这样做的目的是,若果要保证cost function 足够小,theta就必须尽量趋近于0.
当theta3和theta4趋近于0时,右图的图像就和作图的图像无线趋近。
线性回归的正规化:
上式中lamda称为正规化参数。
我们的目的是 min(J(theta))
在没有正规方程时,我们所用的方法是利用普通的梯度递减函数进行迭代找出最合适的参数。
在实践中,我们一般不对theta0进行优化,其中x0为1.
所以当利用正规化方程时,其形式如下:
对于非theta0,其求theta的过程可以化简为下式:
其中当m很大,学习速率很小的时候α*lamda/m的值很小。
总结来说:正规化是对过度拟合的一种解决方法。
正规方程 normal equation 说实话,这里我还不是很懂,以后补充