微信登录

逻辑回归 - 算法原理 - 逻辑回归的基本思想

逻辑回归 - 算法原理 - 逻辑回归的基本思想

一、引言

在机器学习的众多算法中,逻辑回归是一个简单而强大的工具。它虽然名字里带有“回归”,但实际上是一种广泛用于分类问题的算法。无论是预测客户是否会购买产品、判断邮件是否为垃圾邮件,还是诊断疾病是否存在,逻辑回归都能大显身手。下面我们就来深入探究逻辑回归的基本思想。

二、从线性回归到逻辑回归

(一)线性回归回顾

线性回归是我们熟悉的一种算法,其目标是找到一条直线(在二维空间)或超平面(在多维空间)来拟合数据点。例如,我们想要根据房屋的面积来预测其价格,线性回归模型可以表示为:
[y = \theta_0 + \theta_1x_1]
其中 (y) 是房屋价格,(x_1) 是房屋面积,(\theta_0) 和 (\theta_1) 是模型的参数。通过最小化预测值与真实值之间的误差,我们可以确定这些参数的值。

(二)线性回归用于分类的局限性

然而,当我们面对分类问题时,线性回归就显得力不从心了。例如,我们要判断一个客户是否会购买产品,结果只有“会”(1)和“不会”(0)两种情况。如果使用线性回归,预测值可能会超出 [0, 1] 的范围,这显然不符合概率的定义,也无法合理地进行分类。

(三)逻辑回归的引入

为了解决这个问题,逻辑回归在线性回归的基础上引入了一个非线性的函数——逻辑函数(也称为 Sigmoid 函数)。逻辑回归的基本思想是将线性回归的输出通过 Sigmoid 函数映射到 [0, 1] 的区间,这样就可以将其解释为概率。

三、逻辑函数(Sigmoid 函数)

(一)函数定义

Sigmoid 函数的数学表达式为:
[\sigma(z)=\frac{1}{1 + e^{-z}}]
其中 (z) 是线性回归的输出,即 (z=\theta_0+\theta_1x_1+\cdots+\theta_nx_n)。

(二)函数性质

  • 值域:Sigmoid 函数的值域是 (0, 1)。当 (z) 趋近于正无穷时,(\sigma(z)) 趋近于 1;当 (z) 趋近于负无穷时,(\sigma(z)) 趋近于 0。
  • 单调性:Sigmoid 函数是单调递增的,这意味着 (z) 越大,(\sigma(z)) 越接近 1;(z) 越小,(\sigma(z)) 越接近 0。

(三)可视化理解

我们可以通过绘制 Sigmoid 函数的图像来更直观地理解它。图像呈现出一个“S”形曲线,在 (z = 0) 处,(\sigma(z) = 0.5)。

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. z = np.linspace(-10, 10, 100)
  4. sig = 1 / (1 + np.exp(-z))
  5. plt.plot(z, sig)
  6. plt.axhline(y=0.5, color='r', linestyle='--')
  7. plt.axvline(x=0, color='r', linestyle='--')
  8. plt.xlabel('z')
  9. plt.ylabel('σ(z)')
  10. plt.title('Sigmoid Function')
  11. plt.show()

四、逻辑回归模型

(一)模型表达式

逻辑回归模型可以表示为:
[P(y = 1|x)=\frac{1}{1 + e^{-(\theta_0+\theta_1x_1+\cdots+\theta_nx_n)}}]
其中 (P(y = 1|x)) 表示在给定特征 (x=(x_1,x_2,\cdots,x_n)) 的情况下,样本属于正类((y = 1))的概率。

(二)决策规则

根据概率值,我们可以制定一个简单的决策规则:

  • 如果 (P(y = 1|x)\geq0.5),则预测 (y = 1);
  • 如果 (P(y = 1|x)<0.5),则预测 (y = 0)。

(三)举例说明

假设我们要根据学生的考试成绩((x_1))和复习时间((x_2))来预测学生是否能通过考试((y))。逻辑回归模型可以表示为:
[P(y = 1|x_1,x_2)=\frac{1}{1 + e^{-(\theta_0+\theta_1x_1+\theta_2x_2)}}]
通过训练数据估计出参数 (\theta_0)、(\theta_1) 和 (\theta_2) 的值后,对于一个新的学生,我们可以根据他的考试成绩和复习时间计算出 (P(y = 1|x_1,x_2)) 的值,然后根据决策规则进行预测。

五、模型训练:最大似然估计

(一)似然函数

在逻辑回归中,我们使用最大似然估计来估计模型的参数。假设我们有 (m) 个独立的训练样本 ({(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\cdots,(x^{(m)},y^{(m)})}),每个样本的似然可以表示为:
[L(\theta)=\prod_{i = 1}^{m}[P(y^{(i)} = 1|x^{(i)})]^{y^{(i)}}[1 - P(y^{(i)} = 1|x^{(i)})]^{1 - y^{(i)}}]

(二)对数似然函数

为了方便计算,我们通常对似然函数取对数,得到对数似然函数:
[l(\theta)=\sum_{i = 1}^{m}[y^{(i)}\log(P(y^{(i)} = 1|x^{(i)}))+(1 - y^{(i)})\log(1 - P(y^{(i)} = 1|x^{(i)}))]]

(三)目标函数

最大似然估计的目标是找到一组参数 (\theta) 使得对数似然函数 (l(\theta)) 最大。通常我们会将目标函数转化为最小化负对数似然函数:
[J(\theta)=-\frac{1}{m}l(\theta)]

(四)优化算法

为了求解最小化 (J(\theta)) 的问题,我们可以使用梯度下降等优化算法。梯度下降的基本思想是沿着负梯度的方向不断更新参数,直到达到局部最优解。

六、总结

对比项 线性回归 逻辑回归
应用场景 回归问题,预测连续值 分类问题,预测离散类别
模型形式 (y=\theta_0+\theta_1x_1+\cdots+\theta_nx_n) (P(y = 1 x)=\frac{1}{1 + e^{-(\theta_0+\theta_1x_1+\cdots+\theta_nx_n)}})
输出范围 全体实数 [0, 1]
损失函数 均方误差 负对数似然函数

逻辑回归的基本思想就是将线性回归的输出通过 Sigmoid 函数映射到概率空间,从而实现分类的目的。通过最大似然估计来估计模型的参数,使得模型能够在训练数据上取得较好的表现。虽然逻辑回归是一种相对简单的算法,但它在很多实际问题中都有着广泛的应用,并且是理解更复杂分类算法的基础。