逻辑回归 笔记

概述

Logistic regression is a method for classifying data into discrete outcomes.
逻辑回归将数据归类为离散的结果并输出。

逻辑回归虽然名为“回归”,但它解决的其实是分类问题。以二分类问题为例,习惯上把我们关注的某一现象的存在归为y=1(如垃圾邮件、恶性肿瘤细胞),反之则为y=0。

为什么不用线性回归

.利用线性回归解决分类问题通常不是好的方法,主要有两个原因:
1. 如图1所示,线性回归的参数很容易受到极端值的影响,容易得到不好的假设函数。
2. 比如进行2分类(binary classifying)问题,假设y的值ϵ{0,1},但是线性回归模型的假设函数计算出来的函数值会远大于1或远小于0。
图1

假设函数(Hypothesis Funciton)

针对一个分类问题
想要: 0 ≤ h θ ( x ) ≤ 1 0≤h_θ (x)≤1 0hθ(x)1
对假设函数h_θ (x)输出结果的解释:y=1的概率。
若计算出 h θ ( x ) h_θ (x) hθ(x)=0.7,则表示对输入x,输出y=1的概率为0.7。

logistic函数

logistic函数可以很好避免线性回归的第2点不足。
逻辑回归(Logistic Regression)的函数值在区间[0,1]中。
Sigmoid函数和Logistic函数通常是指同一个函数:g(z)= 1/(1+ e − z e^{-z} ez ) ,
进一步地,常用的Logistic函数的形式: h θ ( x ) {h_θ (x)} hθ(x)= g ( θ T x ) {g(θ^T x)} g(θTx)= 1/(1+ e − θ T x e ^{-θ^T x} eθTx)
图2
该函数具有如下较好性质: g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) {g'(z) = g(z)(1-g(z)) } g(z)=g(z)(1g(z)) lim ⁡ x → − ∞ 1 1 + e − z = 0 {\lim_{x \to -\infty}} \frac{1}{1+e^{-z}}= 0 xlim1+ez1=0 lim ⁡ x → + ∞ 1 1 + e − z = 1 {\lim_{x\to +\infty} }\frac{1}{1+e^{-z}}= 1 x+lim1+ez1=1 g ( 0 ) = 0.5 {g(0)= 0.5} g(0)=0.5

决策边界(Decision Boundary)

类似于高中学的线性规划或者非线性规划的边界,根据函数不等式反解出来。
h θ ( x ) = g ( θ T x ) h_θ (x)= g(θ^T x) hθ(x)=g(θTx)(两个x是不同的),由于函数是单调递增的,
0.5 ≤ h θ ( x ) < 1 ⇔ x ≥ 0 0.5≤h_θ (x)<1⇔ x≥0 0.5hθ(x)<1x0 0 < h θ ( x ) < 0.5 ⇔ x < 0 0<h_θ (x)<0.5⇔ x<0 0<hθ(x)<0.5x<0
所以当进行二分类时,容易想到利用0作为阈值(threshold)。

根据假设函数(hypothesis function)的设想以及概率的意义(假设函数计算的可以不严谨地理解为概率)
当 h θ ( x ) ≥ 0.5 ⇔ x ≥ 0 ⇒ 预 测 y = 1 当h_θ (x)≥0.5⇔ x≥0⇒预测y=1 hθ(x)0.5x0y=1 当 h θ ( x ) < 0.5 ⇔ x < 0 ⇒ 预 测 y = 0 当h_θ (x)<0.5⇔ x<0⇒预测y=0 hθ(x)<0.5x<0y=0当要确定h_θ (x)≥0.5的范围,只要确定x≥0的范围即可。

eg1:线性决策边界
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2) hθ(x)=g(θ0+θ1x1+θ2x2)假设 [ θ 0 , θ 1 , θ 2 ] [θ_0,θ_1,θ_2] [θ0,θ1,θ2]=[-3,1,1]。想要预测y=1
只需要 g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) = g ( − 3 + x 1 + x 2 ) ≥ 0.5 g({θ_0+θ_1 x_1+θ_2 x_2} )=g(-3+x_1+x_2 )≥0.5 g(θ0+θ1x1+θ2x2)=g(3+x1+x2)0.5只需要 − 3 + x 1 + x 2 ≥ 0 -3+x_1+x_2≥0 3+x1+x20则直线 l : − 3 + x 1 + x 2 l:-3+x_1+x_2 l:3+x1+x2是决策边界,当-3+x_1+x_2≥0时,y预测为1。
图2

eg2:非线性决策边界
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 2 + θ 4 x 4 2 ) h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2) hθ(x)=g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)
[ θ 0 , θ 1 , θ 2 , θ 3 , θ 4 ] = [ − 1 , 0 , 0 , 1 , 1 ] [θ_0,θ_1,θ_2,θ_3,θ_4]=[-1,0,0,1,1] [θ0,θ1,θ2,θ3,θ4]=[1,0,0,1,1]
想要预测y=1,只需要 g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 2 + θ 4 x 4 2 ) = g ( − 1 + x 3 2 + x 4 2 ) ≥ 0.5 g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2)=g(-1+x_3^2+x_4^2 )≥0.5 g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)=g(1+x32+x42)0.5只需要 − 1 + x 3 2 + x 4 2 ≥ 0 -1+x_3^2+x_4^2≥0 1+x32+x420 − 1 + x 3 2 + x 4 2 = 0 -1+x_3^2+x_4^2=0 1+x32+x42=0是决策边界,当 − 1 + x 3 2 + x 4 2 ≥ 0 -1+x_3^2+x_4^2≥0 1+x32+x420时,y预测为1。

图4

代价函数(Cost Function)

如果采用之前的均方误差(Mean Squared Error)公式: J ( θ ) = 1 m ∑ i = 1 m 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 J(θ)=\frac1m \sum_{i=1}^m\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 J(θ)=m1i=1m21(hθ(x(i))y(i))2 J ( θ ) J(\theta) J(θ)改写成更一般的形式
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) { J(θ)=\frac1m \sum_{i=1}^mCost(h_θ (x^{(i)} ),y^{(i)})} J(θ)=m1i=1mCost(hθ(x(i)),y(i)) C o s t ( h θ ( x ( i ) ) , y ( i ) ) = 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 { Cost(h_θ (x^{(i)} ),y^{(i)})=}\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 Cost(hθ(x(i)),y(i))=21(hθ(x(i))y(i))2 J ( θ ) {J(\theta)} J(θ)非凸函数,拥有多个局部最小值,使用梯度下降法不一定能收敛到全局最小。
下面介绍一个能使 J ( θ ) {J(θ)} J(θ)凸函数的Cost函数。

C o s t ( h θ ( x ) , y ) = { − l o g ⁡ ( h θ ( x ) ) , y = 1 − l o g ⁡ ( 1 − h θ ( x ) ) , y = 0 Cost(h_θ (x),y)=\begin{cases}-log⁡(h_θ (x)), &y= 1 \cr-log⁡(1-h_θ (x)) , &y=0\end{cases} Cost(hθ(x),y)={log(hθ(x)),log(1hθ(x)),y=1y=0
图5

图6
当y=1时,从Cost函数的图像中不难看出,当y=1时,Cost = 0,说明当实际值为1,预测值为1时,付出的代价为0;当y从右边趋于0时,Cost趋于正无穷,说明当实际值为1,预测值为0,付出的代价非常大。这符合Cost函数的性质。
当y=0时,做类似解释。
由于原来的Cost函数为分段函数,不好处理,构造出等价的Cost函数,即
C o s t = y ( i ) l o g ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ⁡ ( 1 − h θ ( x ( i ) ) ) ( y 只 取 0 , 1 ) {Cost= y^{(i)} log⁡(h_θ (x^{(i)}))+(1-y^{(i)} )log⁡(1-h_θ (x^{(i)} )) (y只取0,1) } Cost=y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))(y0,1)

梯度下降及优化算法

θ j ← θ j − α ∂ ∂ θ j J ( θ ) θ_j←θ_j-α\frac ∂{∂θ_j } J(θ) θjθjαθjJ(θ)i.e. θ j ← θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ( 同 时 更 新 所 有 θ j ) θ_j←θ_j-α \frac1m \sum_{i=1}^m(h_θ (x^{(i) })-y^{(i)}) x^{(i)}_j (同时更新所有θ_j) θjθjαm1i=1m(hθ(x(i))y(i))xj(i)(θj) h θ ( x ) = 1 1 + e − θ T x h_θ (x)= \frac1{1+e^{-{θ^Tx}} } hθ(x)=1+eθTx1

优化算法:
共轭梯度(Conjugate gradient)、BFGS、L-BFGS等方法。
优点:1可以自动寻找适合的学习率α
2 能够更快地收敛到最优解
缺点:算法复杂

多分类问题

比如要把整个数据集分成3类,则先挑出第一类,其余两类视为一类,重复操作两次。

图8
图9
图10
图11
图12
h θ ( i ) ( x ) = P ( y = i ∣ x ; θ ) , ( i = 1 , 2 , 3 ) . h_θ^{(i)}(x)=P(y=i |x;θ),(i=1,2,3). hθ(i)(x)=P(y=ix;θ),(i=1,2,3).所以这里有三个分类器
针对每个类别 i,训练一个逻辑回归分类器 h θ ( i ) ( x ) h_θ^{(i)}(x) hθ(i)(x)去预测y=i的概率。
针对一个新的输入x,预测x的类别i,
i s . t . s.t. s.t.
max ⁡ i ⁡ h θ ( i ) ( x ) \max_i⁡h_θ^{(i)} (x) imaxhθ(i)(x)
可以理解为取i , s.t m a x P ( y = i ) max{P(y=i)} maxP(y=i)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值