Machine Learning(Andrew)Week3(上)

本文深入探讨了逻辑回归在二元分类中的应用,包括其假设函数、判定边界、成本函数等内容,并介绍了如何通过梯度下降等方法优化参数。同时,还讲解了逻辑回归与线性回归的区别及如何应用于多类别分类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)和成本函数之间的关系:




在二元分类中,因为 y 只能为 0 1 ,所以成本函数可以写成:

 

我们的目标也是求使得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)中,然后看哪个值比较大,就是属于该类。

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值