码迷,mamicode.com
首页 > 其他好文 > 详细

Coursera机器学习-第三周-逻辑回归Logistic Regression

时间:2016-05-12 14:58:29      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

Classification and Representation

1. Classification

Linear Regression (线性回归)考虑的是连续值([0,1]之间的数)的问题,而Logistic Regression(逻辑回归)考虑的是离散值(例如只能取0或1而不能取0到1之间的数)的问题。举个例子,你需要根据以往季度的电力数据,预测下一季度的电力数据,这个时候需要使用的是线性回归,因为这个值是连续的,而不是离散的。而当你需要判断这个人抽烟还是不抽烟的问题时,就需要使用逻辑回归了,因为答案必然是抽烟或不抽烟这其中的一个,也就是离散值。
图一
技术分享
图解:
第1:对于Email的分类是否是垃圾/不垃圾
第2:在线交易:欺诈/不欺诈
第3:肿瘤:恶性或良性
上面所说的都是分类问题,因为选择是有限个的(都是2个),这个应该很好理解。
通常,将我们所需要得到的定义为正类,另外的定义为负类,但有时也可以随意,并不是严格的。例如,与图中相反的,可以将恶性(malignant)定义为负类(Negative),良性(benign)为正类(Positive)。
图二:
/下图给出8个样例/
技术分享
使用线性回归hθ(x)=θTx,对这8个样例进行拟合,如上图中粉线所示,我们设置一个阈值,当hθ0.5 ,我们将它判定为正类,表示为恶性,当hθ0.5,我们将它判定为负类,表示为良性。
即malignant=0.5的点投影下来,其右边的点预测y=1;左边预测y=0;则能够很好地进行分类。
可以这么理解,我们先观看横轴,表示Tumor Size也就是肿瘤大小,越往右边为恶性的可能性也就越大,所以看起来这图还是合理的。
但是,这个时候来了一个新的样本,如下图三
技术分享
这种情况下,假设linear regression预测由粉红线变为蓝线,那么由0.5的boundary得到的线性方程中,不能很好地进行分类。不满足,
hθ(x)0.5,y=1

hθ(x)<0.5,y=0

上图,竖直的蓝线本是原本的分割线,左边为良性,右边为恶性,多了一个新样本后,线性回归又拟合出一条新线(蓝线),这样,你再根据上面hθ(x)的值来判断,就会将一些本是恶性的归为良性了。
说到这里,应该引入逻辑回归了。
2. Hypothesis Representation

Logistic Regression(逻辑回归)
图四
技术分享
逻辑回归的取值,从图上右侧来看也能得到
0hθ(x)1

仔细观察一下,不就是将原来的线性函数θTx 通过函数g 进行映射了么?得到逻辑回归的表达公式:
hθ(x)=g(z)=11+e?z,z=θTx

z0,g(z)0.5;z<0,g(z)<0.5

由下图五,我们可以知道它的性质,在给定xθ 的值后,y=1y=0 的概率之和为1,也就是说不是1就是0的意思
图五
技术分享
3. Decision Boundary

所谓决策边界,其实就是分类边界,如下图所示的粉线,向上则是y=1区域 ,向下则是y=0区域, 那么问题来了,决策边界是怎么来的?
图六
技术分享
这里先给出了θT={?3,1,1}的取值 ,
其实θT的取值我们是需要通过选择才能得到的,而不是直接给出,这里只是为了更好的理解而直接给出的
, 我们得到hθ(x)=g(?3+x1+x2),回顾一下上面所讲的逻辑回归:
图七
技术分享
hθ(x)=g(z)=11+e?z,z=θTx

z0,g(z)0.5y=1;z<0,g(z)<0.5,y=0
,由此得到当?3+x1+x20时,y=1,则得到如图六所示的粉线上方啦。
我们来看一个例题:
技术分享
根据上面所讲,将θT={5,?1,0}代入,得到5?x1,当5?x10时,也就是x15时, y=1,得到:
技术分享

当然,决策边界并不一定都是线性的,还有非线性的,我们来看这么一个例子:
图八
技术分享

按照上面所讲,将θT={?1,0,0,1,1}代入得到hθ(x)=g(x21+x22?1),令x21+x22?10得到一个半径为1的圆,为决策边界,圆的内侧为y=0区域,外侧为y=1区域

Logistic Regression Model

4. Cost Function

图九:
技术分享
y=1,Cost(hθ(x),y)=?log(hθ(x))如下图十所示:
图十:
技术分享
hθ(x)01hθ(x)=11cost=00
y=0,Cost(hθ(x),y)=?log(1?hθ(x))如下图所示:
图十一
技术分享
hθ(x)10hθ(x)=00cost=00
插一句话:为什么不写成Linear Regression Cost Function形式?

图十二:
技术分享
如果写成线性回归的Cost则会出现非凸函数形式(non-convex),在利用梯度下降的时候,不利于得到全局最解
5. Simplified Cost Function and Gradient Descent

图十三:
技术分享
因为取值为{0,1},所以可以写成上图这种形式,不信你可以另y=0或1看看。
现在我们知道了CostFunction,剩下的工作就是如何去 minJ(θ)中的θ
图十四:
技术分享
这里使用的还是Gradient Descent, 也就是下图Repeat中的部分,
图十五:
技术分享
上式中求解对J(θ)的偏导如下:
图十六:
技术分享
上述求解过程用到如下公式:
技术分享
将θ中所有维同时进行更新,而J(θ)的导数可以由下面的式子求得,结果如下图手写所示:
图十七:
技术分享
通过观察,这个更新式子跟线性回归的很相似,但要注意hθ(x(i))所代表的式子并不一样。

例题1:
那么如何用vectorization来做呢?换言之,我们不要用for循环一个个更新θj,而用一个矩阵乘法同时更新整个θ。也就是解决下面这个问题:

技术分享
技术分享

例题2:
如何判断学习率α大小是否合适,那么在logistic regression系统中怎么评判呢?

技术分享
技术分享
6. Advanced Optimization

除了gradient descent 方法之外,我们还有很多方法可以使用,如下图所示,左边是另外三种方法,右边是这三种方法共同的优缺点,无需选择学习率α,更快,但是更复杂。
图十八:
技术分享
后二者由拟牛顿法引申出来,与梯度下降算法相比,这些算法的优点是:

第一,不需要手动的选择步长;

第二,通常比梯度下降算法快;

但是缺点是更复杂-更复杂也是缺点吗?其实也算不上,关于这些优化算法,推荐有兴趣的同学看看52nlp上这个系列的文章:无约束最优化,更深入的了解可以参考这篇文章中推荐的两本书:

用于解无约束优化算法的Quasi-Newton Method中的LBFGS算法到这里总算初步介绍完了,不过这里笔者要承认的是这篇文档省略了许多内容,包括算法收敛性的证明以及收敛速度证明等许多内容。因此读者若希望对这一块有一个更深入的认识可以参考以下两本书:
1) Numerical Methods for Unconstrained Optimization and Nonlinear Equations(J.E. Dennis Jr. Robert B. Schnabel)
2) Numerical Optimization(Jorge Nocedal Stephen J. Wright)

Multiclass Classification

7. Multiclass Classification:One-vs-all

所谓的多类分类器,就是将二分分类器应用于多类而已。
图十九:
技术分享
比如我想分成K类,那么就将其中一类作为positive,另(k-1)合起来作为negative,这样进行K个h(θ)的参数优化,每次得到的一个hθ(x)是指给定θx,它属于positive的类的概率。
例如:我将class1看成正例,那么class2与class3看成负例;相同的,将class2看成正例,class1与class3看成负例。。
按照上面这种方法,给定一个输入向量x,获得最大hθ(x)的类就是x所分到的类。
图二十:
技术分享

Solving the Problem of Overfitting

8. The Problem of Overfitting

overfitting就是过拟合,简单点来说,就是对Training Set有很好的训练效果,能够完全拟合它,但是模型的泛化能力不行,比如来了一个新数据需要进行预测,得到的结果往往比较差。如下图中最右边的那幅图。对于以上讲述的两类(logistic regression和linear regression)都有overfitting的问题,下面分别用两幅图进行解释:
Linear Regression:
图二十一:
技术分享
Logistic Regression:
图二十二:
技术分享
如何解决过拟合问题?
图二十三:
技术分享
1. 减少feature个数(人工定义留多少个feature、算法选取这些feature)
2. 规格化(留下所有的feature,但对于部分feature定义其parameter非常小)

9. Cost Function

先来看看下图,我们发现如果θ3,θ4的parameter非常大,那么最小化cost function后就有非常小的θ3,θ4
图二十四:
技术分享
注意λ的设置,不能过大,若是过大则会引起欠拟合问题,如下图所示:
图二十五:
技术分享
10. Regularized Linear Regression

技术分享
对于θ0,没有惩罚项,更新公式跟原来一样

对于其他θj,J(θ),对其求导后还要加上一项(λ/m)?θj,见下图:
图二十六:
技术分享
如果不使用梯度下降法(gradient descent+regularization),而是用矩阵计算(normal equation)来求θ,也就求使J(θ)min的θ,令J(θ)θj求导的所有导数等于0,有公式如下:
图二十七:
技术分享

11. Regularized Logistic Regression

就是在原来的Cost Function上加上一个参数惩罚项
图二十八:
技术分享
这里我们发现,其实和线性回归的θ更新方法是一样的
图二十九:
技术分享
图三十:
技术分享
图三十中,jval表示cost function 表达式,其中最后一项是参数θ的惩罚项;下面是对各θj求导的梯度,其中θ0没有在惩罚项中,因此gradient不变,θ1θn分别多了一项(λ/m)?θj

至此,regularization可以解决linear和logistic的overfitting regression问题了~
参考内容:

  1. Stanford机器学习—第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
  2. coursera公开课笔记-斯坦福大学机器学习第六课-逻辑回归
  3. 【机器学习笔记1】Logistic回归总结

Coursera机器学习-第三周-逻辑回归Logistic Regression

标签:

原文地址:http://blog.csdn.net/dingchenxixi/article/details/51348058

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!