逻辑回归

回归
回归,其直观的理解就是拟合的意思。

回归的本质就是我们的预测结果尽量贴近实际观测的结果,或者说我们的求得一些参数,经过计算之后的预测结果尽可能接近真实值。

线性回归定义
线性回归是一个回归问题,即用一条线去拟合训练数据

线性回归的模型: 通过训练数据学习一个特征的线性组合,以此作为预测函数,预测值Y是连续值。 f ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω n x n + b f(x) = \omega_1x_1 + \omega_2x_2 +\dots +\omega_nx_n+ b f(x)=ω1x1+ω2x2++ωnxn+b
训练目标:根据训练数据学习参数 ( ω 1 , ω 2 , … , ω n , b ) (\omega_1,\omega_2, \dots , \omega_n,b) (ω1,ω2,,ωn,b)

逻辑回归定义
逻辑回归,也叫对数几率回归。
假设有一个二分类问题,输出为y∈{0,1},而线性回归模型产生的预测值为 z = w T x + b z=w^Tx+b z=wTx+b是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化,为了单调可微,选用sigmoid函数来替代阶跃函数。
参考

引入:数据线性可分可以使用线性分类器,如果数据线性不可分,可以使用非线性分类器,这里似乎没有逻辑回归什么事情。但是如果我们想知道对于一个二类分类问题,对于具体的一个样例,我们不仅想知道该类属于某一类,而且还想知道该类属于某一类的概率多大,有什么办法呢?
线性回归和非线性回归的分类函数为: y = ω x + b y=\omega x+b y=ωx+b 。预测的y的阈值为 ( − ∞ , + ∞ ) ( - \infty, + \infty) (,+)
,此时不能很好的给出属于某一类的概率,因为概率的范围是**[0,1]**,我们需要一个更好的映射函数,能够将分类的结果很好的映射成为[0,1]之间的概率,并且这个函数能够具有很好的可微分性。在这种需求下,人们找到了这个映射函数,即逻辑斯谛函数,也就是我们常说的sigmoid函数。

  • 假设数据离散二类可分,分为0类和1类,如果概率值大于1/2,我们就将该类划分为1类,如果概率值低于1/2,我们就将该类划分为0类

区别

      线性回归用来预测,逻辑回归用来分类。
      线性回归是拟合函数,逻辑回归是预测函数
      线性回归的参数计算方法是最小二乘法,逻辑回归的参数计算方法是梯度下降

正文
逻辑回归: 0 ≤ h θ ( x ) ≤ 1 0 \leq h_{\theta}(x) \leq 1 0hθ(x)1 ,是一种分类算法,它适用于标签y 取值离散的情况,如:1 0 0 1。

对数几率: l n h θ ( x ) 1 − h θ ( x ) ln \frac{h_{\theta}(x)}{1-h_{\theta}(x)} ln1hθ(x)hθ(x)

决策边界:给定了参数后,就决定了决策边界,与数据集无关。
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2) hθ(x)=g(θ0+θ1x1+θ2x2) ,当参数是向量[-3,1,1]时,直线 x 1 + x 2 = 3 x_1+x_2=3 x1+x2=3 便是决策边界,此时 h θ ( x ) = 0.5 h_{\theta}(x) = 0.5 hθ(x)=0.5

逻辑回归的Chapter3_公式(3.27)的两种推导方法
第一种西瓜书的推导
似然函数
(1) l ( β ) = ∑ i = 1 m ln ⁡ p ( y i ∣ x i ^ ; β ) l(\beta) = \sum_{i=1}^m \ln p(y_i| \hat{x_i};\beta) \tag{1} l(β)=i=1mlnp(yixi^;β)(1)
其中似然项为
(2) p ( y i ∣ x i ^ ; β ) = y i p 1 ( x i ^ ; β ) + ( 1 − y i ) p 0 ( x i ^ ; β ) p(y_i| \hat{x_i};\beta) = y_ip_1(\hat{x_i};\beta) + (1-y_i)p_0(\hat{x_i};\beta) \tag{2} p(yixi^;β)=yip1(xi^;β)+(1yi)p0(xi^;β)(2)
p 0 ( x i ^ ; β ) p_0(\hat{x_i};\beta) p0(xi^;β)是预测为反例( y i = 0 y_i = 0 yi=0):
(3) p 0 ( x i ^ ; β ) = 1 1 + e β T x ^ p_0(\hat{x_i};\beta) = \frac{1} {1+e^{\beta^\mathrm{T} \hat{x}}} \tag{3} p0(xi^;β)=1+eβTx^1(3)

p 1 ( x i ^ ; β ) p_1(\hat{x_i};\beta) p1(xi^;β)是预测为正例( y i = 1 y_i = 1 yi=1):
(4) p 1 ( x i ^ ; β ) = e β T x ^ 1 + e β T x ^ p_1(\hat{x_i};\beta) = \frac{e^{\beta^\mathrm{T} \hat{x}}} {1+e^{\beta^\mathrm{T} \hat{x}}} \tag{4} p1(xi^;β)=1+eβTx^eβTx^(4)
把公式(2)(3)(4)代入公式(1)中,得
l ( β ) = ∑ i = 1 m ln ⁡ y i p 1 ( x i ^ ; β ) + ( 1 − y i ) p 0 ( x i ^ ; β ) l(\beta) = \sum_{i=1}^m \ln {y_ip_1(\hat{x_i};\beta) + (1-y_i)p_0(\hat{x_i};\beta) } l(β)=i=1mlnyip1(xi^;β)+(1yi)p0(xi^;β)
= ∑ i = 1 m ln ⁡ { y i e β T x i ^ 1 + e β T x i ^ + ( 1 − y i ) 1 1 + e β T x i ^ } =\sum_{i=1}^m \ln \{ y_i \frac{e^{\beta^\mathrm{T} \hat{x_i}}} {1+e^{\beta^\mathrm{T} \hat{x_i}}} + (1-y_i) \frac{1} {1+e^{\beta^\mathrm{T} \hat{x_i}}} \} =i=1mln{yi1+eβTxi^eβTxi^+(1yi)1+eβTxi^1}
= ∑ i = 1 m ln ⁡ { y i e β T x i ^ + ( 1 − y i ) 1 + e β T x i ^ } =\sum_{i=1}^m \ln \{ \frac{y_i e^{\beta^\mathrm{T} \hat{x_i}} + (1-y_i)}{1+e^{\beta^\mathrm{T} \hat{x_i}} } \} =i=1mln{1+eβTxi^yieβTxi^+(1yi)}
(5) = ∑ i = 1 m { ln ⁡ { y i ( e β T x i ^ − 1 ) + 1 } − l n { 1 + e β T x i ^ } } =\sum_{i=1}^m \{ \ln \{ y_i(e^{\beta^\mathrm{T} \hat{x_i}} - 1) +1 \} - ln\{ 1 + e^{\beta^\mathrm{T} \hat{x_i}} \} \} \tag{5} =i=1m{ln{yi(eβTxi^1)+1}ln{1+eβTxi^}}(5)

y i = 0 y_i = 0 yi=0 时, (5.1) l ( β ) = ∑ i = 1 m ( 0 − l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( 0 - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{5.1} l(β)=i=1m(0ln(1+eβTxi^))(5.1) y i = 1 y_i = 1 yi=1 时,
(5.2) l ( β ) = ∑ i = 1 m ( β T x i ^ − l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( \beta^\mathrm{T} \hat{x_i} - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{5.2} l(β)=i=1m(βTxi^ln(1+eβTxi^))(5.2)

整合公式(5.1)(5.2)可得
(6) l ( β ) = ∑ i = 1 m ( y i β T x i ^ − l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( y_i \beta^\mathrm{T} \hat{x_i} - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{6} l(β)=i=1m(yiβTxi^ln(1+eβTxi^))(6)

最大化 l ( β ) l(\beta) l(β)即可求得 β \beta β的最优值,进而求得 ω 和 b \omega 和 b ωb。此时,最大化 l ( β ) l(\beta) l(β) 等价于最小化 − l ( β ) -l(\beta) l(β),则令 l ( β ) = − l ( β ) l(\beta) = -l(\beta) l(β)=l(β)
β ∗ = arg ⁡ min ⁡ β l ( β ) \qquad \qquad \qquad \qquad \qquad \beta^* = \underset{\beta}{\arg \min } l(\beta) β=βargminl(β)
西瓜书中的推导结果如下
(7) l ( β ) = ∑ i = 1 m ( − y i β T x i ^ + l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( -y_i \beta^\mathrm{T} \hat{x_i} + ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{7} l(β)=i=1m(yiβTxi^+ln(1+eβTxi^))(7)

可根据梯度下降和牛顿法求最优解 β ∗ \beta^* β

这里根据牛顿法的结论公式得出更新公式: β t + 1 = β t − ( ∂ 2 l ( β ) ∂ β ∂ β ⊺ ) − 1 ∂ l ( β ) ∂ β \beta^{t+1} = \beta^{t} -(\frac{\partial ^2 l(\beta)}{\partial \beta \partial \beta^\intercal }) ^{-1} \frac{\partial l(\beta)}{\partial \beta} βt+1=βt(ββ2l(β))1βl(β)。这里的就是统计学习中的公式 x ( k + 1 ) = x ( k ) − H k − 1 g k x^{(k+1)} = x^{(k)}-H_k^{-1} g_k x(k+1)=x(k)Hk1gk 海 塞 矩 阵 H k = ∇ 2 f ( x ( k ) ) = ( ∂ 2 l ( β ) ∂ β ∂ β ⊺ ) 海塞矩阵 H_k =\nabla^2 f(x^{(k)}) = (\frac{\partial ^2 l(\beta)}{\partial \beta \partial \beta^\intercal }) Hk=2f(x(k))=(ββ2l(β)) g k = ∇ f ( x ( k ) ) g_k = \nabla f(x^{(k)}) gk=f(x(k))

1. 牛顿法
牛顿法(Newton method)也是求解无约束最优化问题的常用方法,收敛速度快,但是每一步需要求解目标函数的海塞矩阵的逆矩阵,计算较复杂。

目标函数很复杂时,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵。

  • 泰勒展开式
    在这里插入图片描述
    其中, Δ x = x − x ( 0 ) , Δ x 2 = ( x − x ( 0 ) ) 2 \Delta x= x-x^{(0)}, \Delta x^2= (x-x^{(0)})^2 Δx=xx(0),Δx2=(xx(0))2。以此展开式来逼近复杂的原函数。
    牛顿法利用极小点的必要条件
    ∇ f ( x ( k + 1 ) ) = 0 \nabla f(x^{(k+1)}) = 0 f(x(k+1))=0

对泰勒展开式进行求导。

  • 海塞矩阵
    一阶导数叫梯度,多阶导数叫海塞矩阵。
    在这里插入图片描述
    (1)当A正定矩阵时, f ( x k ) f(x_k) f(xk)处是极小值;
    (2)当A负定矩阵时, f ( x k ) f(x_k) f(xk)处是极大值;
    (3)当A不定矩阵时, x k x_k xk不是极值点。
    (4)当A为半正定矩阵或半负定矩阵时, x k x_k xk是“可疑”极值点,尚需要利用其他方法来判定。
  • 正定矩阵

2. 梯度下降法
梯度下降法(gradient descent)或称最速下降法(steepest descent)是求解无约束最优化问题的最常用方法,每一步都需要求解目标函数的梯度向量。

x k + 1 = x k + λ k p k x^{k+1} = x^k + \lambda_k p_k xk+1=xk+λkpk

  • 梯度
    函数在该点处沿着该方向沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
    p k p_k pk搜索方向是负梯度方向, λ k \lambda_k λk 是步长,由一维搜索方向确定。这里的 p k = − g ( x ( k ) ) p_k = -g(x^{(k)}) pk=g(x(k)) ,而 g ( x ( k ) ) = ∇ f ( x ( k ) ) g(x^{(k)}) = \nabla f(x^{(k)}) g(x(k))=f(x(k))

其中, λ k \lambda_k λk通过下式求出: f ( x ( k ) + λ k p k ) = min ⁡ λ ≥ 0 f ( x ( k ) + λ k p k ) f(x^{(k)}+ \lambda_k p_k) = \underset{\lambda \geq0}{\min} f(x^{(k)} + \lambda_k p_k) f(x(k)+λkpk)=λ0minf(x(k)+λkpk)

  • 特征缩放
    特征缩放(feature scaling)大致的思路是:梯度下降算法中,在有多个特征的情况下,如果你能确保这些不同的特征都处在一个相近的范围,这样梯度下降法就能更快地收敛。
    (1)均值归一化: x ′ = x − m e a n ( x ) m a x ( x ) − m i n ( x ) x' = \frac{x-mean(x)}{max(x)- min(x)} x=max(x)min(x)xmean(x)
    (2)标准化(Standardization):特征标准化使每个特征的值有零均值(zero-mean)和单位方差(unit-variance)。这个方法在机器学习地算法中被广泛地使用。例如:SVM,逻辑回归和神经网络。这个方法的公式如下:
    x ′ = x − m e a n ( x ) s t d ( x ) x' = \frac{x-mean(x)}{std(x)} x=std(x)xmean(x)
    标准差为: s t d ( x ) = ∑ ( x − m e a n ( x ) ) 2 n std(x) = \sqrt{\frac{\sum(x-mean(x))^2}{n}} std(x)=n(xmean(x))2

正则化
以多项式理解,x的次数越高,拟合的越好,但相应的预测能力可能变差。
解决方法:(1)减少特征数量,手工选择保留哪些特征,或者借助模型选择算法(如PCA)(2)正则化:保留了所有特征,但减少参数的大小。

将正则化作用于线性回归代价函数:
J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta) = \frac{1}{2m}[\sum_{i=1}^m (h_\theta (x^{(i)}) - y^{(i)} )^2 + \lambda \sum_{j=1}^n \theta_j^2 ] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]
λ \lambda λ 是正则化参数,作用是控制这两个目标之间的平衡,即更好拟合训练集的目标和将参数控制得更小的目标。这里 λ \lambda λ值很大的话,为了使代价函数尽量小,所有的 θ \theta θ都会在一定程度上减小。

将正则化作用于逻辑回归代价函数:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta) = \frac{1}{m}\sum_{i=1}^m [-y^{(i)} \log(h_\theta (x^{(i)})) - (1-y^{(i)}) \log(1-h_\theta(x^{(i)}))] + \frac{\lambda} {2m} \sum_{j=1}^n \theta_j^2 J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2
逻辑回归和线性回归的假设函数不同
(1)线性回归: h θ ( x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_\theta(x) = \theta^TX =\theta_0x_0 + \theta_1x_1 +\theta_2x_2 +\dots +\theta_n x_n hθ(x)=θTX=θ0x0+θ1x1+θ2x2++θnxn
(2)逻辑回归: h θ ( x ) = 1 1 + e − θ T X h_\theta(x) = \frac{1}{1+e^{-\theta^TX}} hθ(x)=1+eθTX1

逻辑回归的损失函数—是对数损失函数
L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) L(Y,P(Y|X)) = -logP(Y|X) L(Y,P(YX))=logP(YX)
逻辑回归损失函数的启发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值