Logistic回归算法原理
Logistic回归模型就是将线性回归的结果输入一个sigmoid函数,将回归值映射到0~1,表示输出为类别的概率。
1. Logistic回归模型
线性回归表达式如下:
$x_i$是第$i$个样本的$N$个特征组成的特征向量,$w$为$N$个特征对应的特征权重组成的向量,$b$是偏置常数。
Sigmoid函数:
其中$z_i$是自变量,$y_i$是因变量,$e$是自然常数。
线性回归的结果套一个sigmoid函数就能得到Logistic回归的结果,即:
如果我们将$y_i=1$视为$x_i$作为正例的可能性,即:
那么反例$y_i=0$的可能性为:
定义两者的比值$\frac{p(y_i=1|x_i)}{p(y_i=0|x_i)}$为“概率”,对其取对数得到“对数概率”:
可见对数概率的结果正好是线性回归的预测结果$w\cdot x_i+b$,因此,Logistic回归的本质其实就是用线性回归的预测结果$w\cdot x_i+b$去逼近真实标记的对数概率$ln\frac{y}{1-y}$,实际上这也是Logistic回归也被称为“对数概率回归”的原因。
2. Logistic回归学习策略
在上面我们已经知道正例和反例的概率表达式,接下来则要构造似然函数,将其转换为一个优化问题来求解$w$和$b$。
对给定数据集$T={(x_1,y_1),(x_2,y_2),…,(x_M,y_M)}$,定义似然函数:
取对数,得到对数似然函数:
我们需要使每个样本属于其真实标记的概率越大越好,即最大对数似然函数:
可以用梯度下降或牛顿法来求解该优化问题。
3. Logistic回归优化算法
3.1 算法流程
选用批量梯度下降算法,现分别对权重矩阵$w$和偏置常数$b$求偏导:
每次随机选取一个样本点$(x_i,y_i)$,对$w,b$进行一次更新,得到迭代公式:
Logistic回归流程:
输入:训练集$T={(x_1,y_1),(x_2,y_2),…,(x_M,y_M)}$,学习率$\eta$;
输出:Logistic回归模型$h(x)=\frac{1}{1+e^{-(wx_i+b)}}$。
第1步:选取初始值向量$w$和偏置常数$b$;
第2步:在训练集中随机选取数据$(x_i,y_i)$,根据上面的迭代公式进行参数更新;
第3步:重复步骤2,直至模型满足训练要求。