了解逻辑回归

什么是逻辑回归

逻辑回归是最简单的分类算法之一,简单但是好用。

基础知识

Sigmoid 函数

对于二分类问题来说,sigmoid 函数可以较为平滑地处理 01 瞬时阶跃问题。其计算公式为:

图像为:

Sigmoid

当然我们也可以利用这个工具来可视化地了解 sigmoid 函数。总所周知,分类的时候会处理多个特征,那我们可以对于每一个特征 $x_i$ 乘以一个回归系数 $w_i$ ,得到 $z=w_0x_0+w_1x_0+…+w_nx_n$ ,即

可以很明显地看到,sigmoid 函数的值域是 $(0,1)$ ,且 $z$ 的值越大,则样本 $x_i$ 表示正例的概率越大,反之同理。$z$ 是一个线性函数,后面会经常用到。

定义条件概率

在 $x_i$ 出现的情况下,原本为正的条件概率为:

在 $x_i$ 出现的情况下,原本为负的条件概率为:

那么条件概率既是:

几率相关

事件发生的几率等于该事件发生的概率除以不发生的概率

那么对数几率则是:

对于 LR 而言,则输出 $Y=1$ 的对数几率则是:

即输出 $Y=1$ 的对数几率是由输入 $x$ 表示的线性模型。

导函数形式

梯度

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)

回顾一下梯度的计算公式:

其中 i, j, k 为标准的单位向量,分别指向 x, yz 坐标的方向。

梯度下降法

参考维基百科梯度下降法)

局部最优现象

梯度下降的最终点不一定是全局最优点,所以初始点的点选择对最终结果有很大程度影响。

LR 原理

LR 的工作原理

  1. 初始化每一个回归系数为1

  2. 重复计算R次:

    • 计算整个数据集的梯度

    • 使用 步长 x 梯度,更新回归系数

  3. 更新回归系数

LR 算法特点

优点:简单好用

缺点:容易欠拟合,分类精度可能不高

LR 实现

sigmoid函数

1
2
3
import math
def sigmoid(z):
return 1 / ( 1 + math.exp(-z) )

梯度上升

1
2
def gradasend():
pass

核心代码

1
2
def lr():
pass

LR实战