机器学习笔记 Week3 逻辑回归
全部笔记PDF版:http://vdisk.weibo.com/s/J4rRX/1373287206
Week3 由两部分内容构成:在
逻辑回归 归一化
逻辑回归(Logistic Regression)
1.1分类问题
在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈等等。
我们从二元的分类问题开始讨论。
我们将因变量(dependant variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量
其中0表示负向类,1表示正向类
1.2分类问题建模
回顾在一开始提到的乳腺癌分类问题,我们可以用线性回归的方法求出适合数据的一条直线:
根据线性回归模型我们只能预测连续的直,然而对于分类问题,我们需要输出0或1,我们可以预测:
当hθ大于等于0.5时,预测y=1 当hθ小于0.5时,预测y=0
对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。假使我们又观测到一个非常大尺寸的恶性肿瘤,将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。
这时,再使用0.5作为阀值来预测肿瘤是良性还是恶性便不合适了。可以看出,线性回归模型,因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。
我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在0和1之间。
逻辑回归模型的假设是:
hθ(x)=g(θTX)
其中:
X代表特征向量 g代表逻辑函数(logistic function)
一个常用的逻辑函数为S形函数(Sigmoid function),公式为:
该函数的图像为:
合起来,我们得到逻辑回归模型的假设:
对模型的理解:
hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimated probablity)即
例如,如果对于给定的x,通过已经确定的参数计算得出hθ(x)=0.7,则表示有百分之70的几率y为正向类,相应地y为负向类的几率为1-0.7=0.3。
1.3判定边界(Decision Boundary)
在逻辑回归中,我们预测:
当hθ大于等于0.5时,预测y=1 当hθ小于0.5时,预测y=0
根据上面绘制出的S形函数图像,我们知道当
z=0时g(z)=0.5 z>0时g(z)>0.5 z<0时g(z)<0.5
又z=θTX,即:
θTX大于等于0时,预测y=1 θTX小于0时,预测y=0
现在假设我们有一个模型:
并且参数θ是向量[-3 1 1]。
则当-3+x1+x2大于等于0,即x1+x2大于等于3时,模型将预测y=1。
我们可以绘制直线x1+x2=3,这条线便是我们模型的分界线,将预测为1的区域和预测为0的区域分隔开。
假使我们的数据呈现这样的分布情况,怎样的模型才能适合呢?
因为需要用曲线才能分隔y=0的区域和y=1的区域,我们需要二次方特征:
假设参数是[-1 0 0 1 1],则我们得到的判定边界恰好是圆点在原点且半径为1的圆形。
我们可以用非常复杂的模型来适应非常复杂形状的判定边界。
1.4代价函数
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convex function)。
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
因此我们重新定义逻辑回归的代价函数为:
其中
hθ(x)与Cost(hθ(x),y)之间的关系如下图所示:
这样构建的Cost(hθ(x),y)函数的特点是:当实际的y=1且hθ也为1时误差为0,当y=1但hθ不为1时误差随着hθ的变小而变大;当实际的y=0且hθ也为0时代价为0,当y=0但hθ不为0时误差随着hθ的变大而变大。
将构建的Cost(hθ(x),y)简化如下:
带入代价函数得到:
在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。
算法为:
求导后得到:
注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的hθ(x)=g(θTX)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。
一些梯度下降算法之外的选择:
除了梯度下降算法以外还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)
fminunc是matlab和octave中都带的一个最小值优化函数,使用时我们需要提供代价函数和每个参数的求导,下面是octave中使用fminunc函数的代码示例:
function [jVal, gradient] = costFunction(theta) jVal = [...code to compute J(theta)...];gradient = [...code to compute derivative of J(theta)...];endoptions = optimset('GradObj', 'on', 'MaxIter', '100');initialTheta = zeros(2,1);[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);1.5多类分类(Multiclass Classification)
多类分类问题中,我们的训练集中有多个类(>2),我们无法仅仅用一个二元变量(0或1)来做判断依据。例如我们要预测天气情况分四种类型:晴天、多云、下雨或下雪。
下面是一个多类分类问题可能的情况:
yiz
一种解决这类问题的途径是采用一对多(One-vs-All)方法。在一对多方法中,我们将多类分类问题转化成二元分类问题。为了能实现这样的转变,我们将多个类中的一个类标记为正向类(y=1),然后将其他所有类都标记为负向类,这个模型记作。接着,类似地第我们选择另一个类标记为正向类(y=2),再将其它类都标记为负向类,将这个模型记作,依此类推。
最后我们得到一系列的模型简记为:
最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。
课程地址:https://class.coursera.org/ml-003/class/index
0
您可能也喜欢:
机器学习笔记 Week8 聚类
机器学习笔记 Week9 异常检测
机器学习笔记 Week7 支持向量机
笔记 逻辑学导论 Week3
笔记 逻辑学导论 Week5
无觅关联推荐[?]
更多阅读
中小学教师职业道德规范学习笔记
中小学教师职业道德规范学习笔记一、依法执教。学习和宣传马列主义、毛泽东思想和邓--同志建设有中国特色社会主义理论,拥护党的基本路线,全面贯彻国家教育方针,自觉遵守《教师法》等法律法规,在教育教学中同党和国家的方针政策保持一
伤寒学习笔记(下
伤寒学习笔记---14,桂枝用量问题?学习仲景药法,涉及用量问题。深入考证,固然不必,简单了解,实属必要。仅以桂枝为例,整理如下:基本资料:《现代中医药应用与研究大系》1985年版,简称《大系》。药法:凡例里说:“将其折合今之用量---,并结合笔者临床
关于闪光灯TTL的学习笔记
关于闪光灯TTL的学习笔记(转)俺注:一直对加闪光灯的拍摄比较疑惑,要知道并不是加开个闪光就一了百了的。特别是现在的专业闪灯,有好几种模式,都需要配合相机的测光使用。今天无意之间看到一篇解疑的文章,赶紧收集下来仔细学习。想学习下闪
飞地艺术坊素描学习笔记秘籍本3素描人物头像训练以及综合笔记
飞地艺术坊素描学习笔记【秘籍本3 素描人物头像训练以及综合笔记】人像训练1.准肯定像,而像未必准。因为有的是感觉像、有的是结构像、有的是特征像(对象型、心理型和画面型)2.像有很多因素造成的,明暗、形体、结构、空间、甚至细节
“Doit,掌控每一天”学习笔记和使用感受
使用感受:学习经历:微信课,4节沪江职场讲座,准备报名参加易仁教主的威海线下活动。以上表明:我对Doit软件学习的决心,不仅仅是因为教主的推荐,更多的是对自我的挑战。参加“沪江网:掌控每一天活动:写感受,拿福利”是我做过的最漂亮的项目类事