【理论篇】逻辑回归

小鱼今天介绍的逻辑回归算法,虽然叫逻辑回归,但实际上确是一个经典的二分类算法!并且逻辑回归的决策边界可以是非线性的,比如下面的逻辑回归决策边界将所有的红色和绿色点区分了出来:

此外,逻辑回归也是机器学习模型中最简单的算法之一!但使用却非常普遍。大家可能了解到机器学习中还有向量机,神经网络等非常复杂的算法,但算法越复杂,过拟合的风险也就越大。

在做机器学习分类问题时,我们通常的策略就是先逻辑回归再用复杂的,能简单还是用简单的。我们也会先用逻辑回归创建一个 Base Model ,然后再用更复杂的算法来实现。

Sigmoid 函数

Sigmoid 函数的表达式为:

g(z) = \frac{1}{1+e^{-z}}

Sigmoid 函数可以将任意的输入映射到 [0,1] 区间,我们在线性回归中可以得到一个预测值,再将该值映射到 Sigmoid 函数中,即可完成由值到概率的转换,也就是分类任务。

下面,我们来绘制一下 Sigmoid 函数。首先,定义 Sigmoid 函数:

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

使用 matplotlib 绘图:

import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

nums = np.linspace(-10, 10, 100)
plt.plot(nums, sigmoid(nums), 'r')

Sigmoid 函数特点总结如下:

  • g 值域为 \to [0,1]
  • g(0)=0.5
  • g(- \infty)=0
  • g(+ \infty)=1

使用梯度下降求解逻辑回归

在线性回归中,我们使用 xθ 的转置来表示预测值:

\begin{array}{ccc} \begin{pmatrix}\theta_{0} & \theta_{1} & \theta_{2}\end{pmatrix} & \times & \begin{pmatrix}1\\ x_{1}\\ x_{2} \end{pmatrix}\end{array}=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}

将线性回归的结果代入 Sigmoid 函数后,可以得到逻辑回归的预测函数:

对于二分类算法,有如下公式成立:

我们可以使用一个表达式来进行整合:

上述函数表达式满足:如果 y==0 ,则 p = 1-hθ(x) ;如果 y==1,则 p = hθ(x)

这样就得到了我们的似然函数:

取对数似然,将叠乘转换为叠加:

为对数似然引入负号,转换为梯度下降问题,并计算平均损失:

求导:

\frac{\partial J}{\partial \theta_j}=-\frac{1}{m}\sum_{i=1}^m (y_i - h_\theta (x_i))x_{ij}

更新参数:

以上就是逻辑回归算法原理的全部内容~

下节,小鱼将为大家带来使用 Python 实现的逻辑回归算法模型,来进一步感受逻辑回归的算法思路。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容