Machine LearningWeek3
Logistic Regression
1、分类
邮件分类:是垃圾邮件/不是垃圾邮件?
在线事务:是欺诈行为/不是欺诈行为?
肿瘤:恶性/不是恶性?
可以看出,这里的输出都是“是/否”。用1表示肯定,0表示否定,则输出就是y={1,0}
和Hsuan-Tien Lin的x(-1)o(+1)是一样的。
上面讲的是二元分类,结果只有两个。如果y={0,1,2,3……n},就是多元分类了。
举判断肿瘤是否恶性的例子,假设是否恶性只和肿瘤大小有关。如果我们用前面讲的线性回归来做这个分类:
如图所示,给出了8个病人的数据,
我们用线性回归的方法,训练了一个模型h(x)
如紫色的线所示,我们设个阈值0.5,说把x放入h(x)中,如果算出来大于0.5,就是恶性的,否则就是良性的。
即
h(x)≥0.5,y=1
h(x)<0.5,y=0
上面的模型,如下图所示,把数据都投影到h(x)上。在绿色线右边的是恶性y=1,左边的是良性y=0。得出恶性的肿瘤都比良性的大。
如果此刻再加一个数据
如蓝色的线所示,我们又算了一个模型h’(x),再用0.5做阈值。
数据投影到h’(x)轴后,发现用灰色线圈起来的两个数据就出现问题了。把灰色的数据放到h’(x)中,算出来的h’(x)<0.5,y=0,而实际应该是y=1。
也许你会问,改阈值不就行吗?
这样似乎就犯了本末倒置的错误,我们要用阈值来约束分类器,变成了要迁就分类器而去改阈值。而且,阈值是预先选定的,我们要根据这个阈值来分类。
所以,线性回归不能满足需求的时候,提出了逻辑回归(Logistic Regression)
上面分类问题希望要输出是y=0或y=1,但是线性回归输出的值可以h(x)>1,也可以h(x)<0。而逻辑回归的值0≤h(x)≤1,这样似乎更符合模型的需求。
2、逻辑回归h(x)
1)线性回归的hypothesis是:
写成向量形式就是:
2)逻辑回归的hypothesis是:
g是Sigmoid function或者Logistic function,公式为
Sigmoid函数图像如下:
可以看出 z≥0时,g(z)≥0.5;
z<0时,g(z)<0.5。
所以逻辑回归
对比两个模型:
线性回归:
逻辑回归:
对逻辑回归h的直观解释就是,h(x) = 给定数据x和参数θ,输出y=1的概率
举例子来说:
如果算出来的h(x)=0.7,那我们就说y=1的概率是0.7,也就是说,是恶性肿瘤有70%的概率。
写成概率的形式就是h(x)=p(y=1| x;θ)
p(y=0| x;θ)+p(y=1| x;θ)=1
p(y=0| x;θ)=1-p(y=1| x;θ)
3、判定边界(Decision boundary)
Decision boundary是能够将所有点分对类的值。
上图,=0 是判定边界,因为它≥0和<0,对分类是两种结果。
例:
有一个模型给出参数θ是向量[-3 1 1]T,根据上面所说的,
=0是判定边界,则-3+x1+x2=0;即x1+x2=0是判定边界。
如果点不能用直线分开,我们就要用非线性的判定边界
用的模型是
判定边界就是
由上面可以看出,判定边界做的事情是分点,如第二个例子,把o放在圆内,把x放在圆外。而我们输出的结果是概率。所以,和线性回归不同在于,逻辑回归算完,要放到g(z)中算概率,而线性回归直接输出
值。
4、成本函数(Cost function)
来看完整的框架:
我们有训练数据,m对(xi,yi),有模型的表达式h(x),重点是找出参数θ。和之前讲过的类似,我们也用成本函数来判断一个θ好不好。
线性回归的成本函数是:
逻辑回归h为
如果直接代入上面的成本函数,会得到非凸函数:
这就意味着,我们有很多局部最小值。我们在做梯度下降的时候,找的就是局部最小值。而线性回归的成本函数是凸函数:
凸函数的优点在于,它是碗状的,所以它的局部最小值就是全局最小值。这样,在做梯度下降时,局部的最优就是全局的最优。所以,线性回归可以找到成本最小的θ。
而上面所示的逻辑回归成本函数,是非凸函数,有许多局部最小值,所以梯度下降时,有可能在找的就是局部最小,如图找到了B点,而A点才是全局最优。
以下摘自(Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”):
网上搜的一个解释,逻辑回归中,y服从二项分布,误差服从二项分布,而非高斯分布,所以不能用最小二乘进行模型参数估计,可以用极大似然估计来进行参数估计。
所以,逻辑回归成本函数:
来看h(x)和成本函数之间的关系:
我们的目标也是求使得minJ(θ)的参数θ。
求导后得到(最好在纸上推一下):
注意:这里和线性回归一模一样,但是h不同。
网上搜到的一个归纳,觉得不错:
最小二乘法的线性回归——适合回归问题建模预测
最大似然法的logistic回归——适合分类问题建模预测
5、优化方法
如果给参数θ,我们就能求J(θ),再求导更新θ,直到minJ(θ)。这是梯度下降。此外,还有其他优化方法找θ。如
Conjugate gradient (共轭梯度法)
BFGS method
L-BFGS(Limited-memory BFGS)
这些方法有以下优缺点:
6、多类别分类问题(One Vs all)
例子:
Email文件夹/标签:工作、朋友、家庭、兴趣;
医疗示意图:没有生病、流感、感冒
天气:多云、晴、雨、雪
二元分类和多元分类对比:
我们可以把多元分类转成二元分类,如右图,当我们想把△和其他类别分开时,我们就让是△的为1,其余的都通通归为0。
求其他类的时候也用同样的方法。
如上图
当要把△和其他类别分开,用二元分类求出了h△(x)
当要把□和其他类别分开,用二元分类求出了h□(x)
当要把X和其他类别分开,用二元分类求出了hX(x)
如果有一个新的(x,y)要判断是三类中的哪类,就要把x代入到h△(x)、h□(x)和hX(x)中,然后看哪个值比较大,就是属于该类。