Earyant的技术博客

欢迎来到Earyant的技术博客,在这里我将与你分享新技术。

分类模型1-逻辑回归

logistic回归简介

logistic回归用于解决的是分类问题,其基本思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。也就是说,logistic 回归不是对所有数据点进行拟合,而是要对数据之间的分界线进行拟合。

  • 逻辑回归的本质: 极大似然估计
  • 逻辑回归的激活函数:Sigmoid
  • 逻辑回归的代价函数:交叉熵

Logistic 回归的数学表达

如何求解最优的 $\theta$

首先,我们依旧是要找到一个合适的损失函数,在Logistic回归中的损失函数为:

我们最终给它加一个正则化项:

最后,我们要求最优参数的话,依旧是使用梯度下降算法来获取$J(\theta)$ 的最小值时对应的参数。


常见问题

1. 逻辑回归与线性回归

  • 逻辑回归处理分类问题,线性回归处理回归问题

  • 线性回归的拟合函数本质上是对 输出变量 y 的拟合, 而逻辑回归的拟合函数是对 label 为1的样本的概率的拟合

  • 线性回归其参数计算方式为最小二乘法, 逻辑回归其参数更新方式为极大似然估计

  • 线性回归更容易受到异常值的影响, 而LR对异常值有较好的稳定性。

2. 推导一下 LR

  • sigmoid :

  • LR 的定义:

  • LR 满足伯努利分布:

  • 损失函数(极大似然): 对于训练数据集,特征数据 $x={x_1, …x_m}$ 和其对应的分类标签 $y = {y_1,…y_m}$ , 假设 m 个样本是相互独立的,那么极大似然函数为:

    那么它的 log 似然为:

  • 参数优化(梯度上升)

  • 损失函数:

3. LR 如何实现多分类?

  • 方式1: 修改逻辑回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
  • 方式2: 根据每个类别都建立一个二分类器,本类别的样本标签定义为0,其它分类样本标签定义为1,则有多少个类别就构造多少个逻辑回归分类器。

若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。

4. LR 为何要对特征进行离散化

  • 非线性。 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;
  • 速度快。 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
  • 鲁棒性。 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 方便交叉与特征组合: 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。
  • 稳定性: 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。
  • 简化模型: 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

5. 逻辑回归中,增大 L1 正则化会是什么结果

所有参数 w 都会变成 0。

欢迎关注我的其它发布渠道