机器学习——逻辑回归算法

机器学习——逻辑回归算法

  • 前言
  • 一、逻辑回归是什么?
  • 二、数学推导
    • 1.Sigmoid函数
    • 2.损失函数
    • 3.求导过程
  • 总结


前言

最近准备开始学习机器学习,后续将对学习内容进行记录,该文主要针对逻辑回归中涉及得数学公式推导以及算法的代码实现进行记录!

一、逻辑回归是什么?

通过前面线性回归算法的学习,我们知道,线性回归的实质是通过线性回归算法找出自变量和因变量的最佳线性关系,且因变量 Y Y Y是连续的,那么如果 Y Y Y是离散的话,应该如何解决呢?
可以想到的办法是,找到一个合适的预测函数,用来预测输入数据的判断结果,使其输出在[0,1]之间,然后选择一个基准,比如0.5,如果算出来的预测值大于0.5就认为其预测值为1(类别A),反之则其预测值为0(类别B),这样我们就可以得到一个分类模型,如果结果的类别只有两种,那么就是一个二分类模型了。
总的来看,线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记,而逻辑回归预测的是一个事件发生的概率,得到的输出应是一个概率值,在0到1之间。


二、数学推导

1.Sigmoid函数

前面提到,需要找到一个合适的预测函数,进行一次函数转化。我们选择Sigmoid函数,图象如下:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1

机器学习——逻辑回归算法_第1张图片
从图象可以看出:
1.自变量取值为任意实数,但值域为[0,1],当z趋近于负无穷时, g ( z ) g(z) g(z)趋近于0,当z趋近于正无穷时, g ( z ) g(z) g(z)趋近于1。这样就可以将将任意的输入映射到[0,1]区间上,完成由值到概率的转换。
2.它有一个很好的导数性质:sigmoid函数是任意阶可导的凸函数,有很好的数学性质。
 
 

2.损失函数

用线性回归中的输入作为例子进行数学推导,并且有一个二分类任务需要解决
那么预测函数如下:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1
其中 θ T x = ∑ i = 0 n = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n \theta^Tx=\sum_{i=0}^n=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n θTx=i=0n=θ0x0+θ1x1+θ2x2+...+θnxn
二分类任务表明样本的输出是0或者1两类,那么就有:
P ( y = 1 ∣ x , θ ) = h θ ( x ) P(y=1|x,\theta)=h_\theta(x) P(y=1x,θ)=hθ(x)
P ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) P(y=0|x,\theta)=1-h_\theta(x) P(y=0x,θ)=1hθ(x)
合并以上两个式子有:
P ( y ∣ x , θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x,\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y} P(yx,θ)=(hθ(x))y(1hθ(x))1y
于是就有
机器学习——逻辑回归算法_第2张图片
看到这里,读者可能会有两个问题?
1.为什么损失函数选取对数似然,如果选取线性回归中的最小二乘法作为损失函数能成吗?
机器学习——逻辑回归算法_第3张图片

逻辑回归在使用sigmoid后输出是一个非线性曲线,所以最终的最小二乘损失函数曲线就如上图所示,很不光滑,此时使用梯度下降大概率会得到一个局部最优值,而非全局最优值,这就是不适用最小二乘的根本原因。
2.如何判断损失函数是凸函数还是凹函数(此处凸函数是指下凸)?
①直接根据定义计算
例如函数是凸函数的一阶充要条件为 f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) f(y) \geq f(x)+\nabla f(x)^T(y-x) f(y)f(x)+f(x)T(yx)
二阶充要条件为 ∇ 2 f ( x ) ≥ 0 \nabla^2f(x)\geq0 2f(x)0
②直接看结构
i.指数函数是凸函数;
ii.对数函数是凹函数,然后负对数函数就是凸函数;
iii.对于一个凸函数进行仿射变换,可以理解为线性变换,结果还是凸函数;
iv.二次函数是凸函数(二次项系数为正);
v.高斯分布函数是凹函数;
vi.多个凸函数的线性加权,如果权值是大于等于零的,那么整个加权结果函数是凸函数。
总结:
当我们使用逻辑回归解决分类问题时,由于在对似然函数取对后的对数似然函数为一凹函数,凹函数一般用于梯度上升求最大值,但我们应慢走损失函数越小越好,于是应该进行取负操作,这样就能将问题抓换为梯度下降任务。

3.求导过程

机器学习——逻辑回归算法_第4张图片
需要注意的是,
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1           g ′ ( z ) = e − z ( 1 + e − z ) 2 = g ( z ) ( 1 − g ( z ) ) g'(z)=\frac{e^{-z}}{(1+e^{-z)^2}}=g(z)(1-g(z)) g(z)=(1+ez)2ez=g(z)(1g(z))
x i j x_i^j xij表示第i个样本的第j个特征
于是有
机器学习——逻辑回归算法_第5张图片
其中 α \alpha α表示学习率(步长)


总结

为了加强对逻辑回归算法的理解,后续会继续更新该算法的代码实现,敬请期待!

你可能感兴趣的:(机器学习,算法,逻辑回归,python)