Machine Learning:Logistic Regression
Classification也是我们经常会遇到的问题,此时的预测值h(x)已不再是Linear Regression中连续的,而是离散的取值,因此如果还是采用线性建模必然会不合理,所以我们需要一个新
如图所示,对分类问题进行线性建模,随着加入样本的变化,在相同阈值(threshold)的情形下,某些样本的分类会发生变化,以至于预测发错误。
2,Hypothesis and Representation
sigmoid function很好地解决了2值问题,当X区域正无穷时h(X)=1;当X趋于负无穷时h(X)=0;因此我们可以设定一个threshold,一旦h(X)的值超过了threshold我们就可以很自信的认为它是属于这一分类,否则属于另一分类。
例如我们可能会采用如下的方式来设定为我们的threshold。
3,Cost Function
由于这样得到的Cost Function是non-convex的,所以不能使用我们熟悉的梯度下降算法,因此我们需要对其进行适当的转换。
如图所示,由Cost Function的定义可以看出,我们认为如果预测正确那么Cost的值为0,否则预测错误则Cost的值为无穷大,这很符合我们的直觉。
我们可以进行一下合并得到一个更加简洁的表达式。
让我们明确一下我们的目标
其实最大似然法(Maximum Likelihood)也可以得到该结果。最后我们要求的是l(theta)的最大值,那么此时我们就需要用梯度上升算法而不是梯度下降算法,即theta(j)=theta(j)+alpha*delta;
我们可以看到最后得出了相同的表达式,不过一种方法需要求的是最大值而另一种需要求出的是最小值。
4,Gradient descent
首先来看一下sigmoid函数的一个特性:
对theta求偏导,然后带入sigmoid函数的特性:
我们可以看到这个式子和线性回归中的式子形式一模一样,但是h(x)是不同的,在这里h(x)=sigmoid(x)。
5,Multi-Class Classification
对于Multi-Class Classification的问题:
比如我想分成K类,那么就将其中一类作为positive,另(k-1)合起来作为negative,这样进行K个h(θ)的参数优化,每次得到的一个hθ(x)是指给定θ和x,它属于positive的类的概率。按照上面这种方法,给定一个输入向量x,获得最大hθ(x)的类就是x所分到的类。
6,Over-fitting and Under-fitting现象
拟合多项式的阶数越高,那么对训练集的拟合程度越好,但是其泛化能力极弱,没法进行良好的预测。
避免过拟合的措施:
7,Cost Function
加入惩罚因子进行regularization,选取适当的lambda值,可以使得在求取J(theta)时其中若干theta项为0,这样就降低了多项式的阶数,达到避免过拟合的问题。
8,Linear Regression Regularization
注意这里没有对theta0进行regularization.
这里是一个(N+1)X(N+1)的矩阵,其中第一行和第一列为0,剩下一个NXN的单位矩阵。
9, Logistic Regression Regularization
注意这里也没有对theta0进行regularization.
-----------------------------------------------------------------------------------------------------------
本内容摘自斯坦福大学Andrew Ng老师《机器学习》课件