一、引言
虽然说是逻辑回归,其实既可以用它做回归,也可以用它做分类。一般我们从最简单的二分类问题开始了解他,当然也可以做多分类。
二、Logistic Regression 的一般步骤
- 找一个合适的假设
- 构造损失函数
- 让损失函数最小,求出对应的参数值
三、二分类问题下Logistic Regression的过程
3.1 Logistic Function
在机器学习笔记(十)——Logistic Function AND Softmax Function中我们已经讨论过了Logistic 函数,因此,建议不熟悉的读者参考上述文章。
3.2 找一个合适的假设
假设样本是各个贷款人的信息,标签是他是否违约。目标是建立一个模型,用来预测一个贷款人违约的可能性,而银行根据这个信息决定是否放款给当前的贷款人。那么,很明显,这是一个分类问题,根据贷款人的一些信息和已知的标签,我们建立模型,去预测新来的贷款人违约的可能性。这里将贷款人的各个信息,如学历、年收入、信用卡违约次数等作为x,将他是否违约记为y,其中
hθ(x)=g(θTx)=11+e−θTx
其中, θ是参数向量。通过上式,可以将借款人的各个信息映射到(0,1)之间,表示他是否违约的可能性。
P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)
将上式表示成一个式子:
P(y|x;θ)=hθ(x)y(1−hθ(x))1−y
至此,得到了一个给定贷款人信息时,他违约概率的表达式。
3.3 构造损失函数
在整个样本集中,m个独立样本出现的似然函数是:
利用最大似然求θ,取对数最大似然:
l(θ)=logL(θ)=∑i=1mlogP(yi|xi;θ)
定义下式为损失函数:
J(θ)=−1ml(θ)=−1m∑i=1mlog[hθ(xi)yi(1−hθ(xi))1−yi]=−1m∑i=1m{yiloghθ(xi)+(1−yi)log[1−hθ(xi)]}
最大化 l(θ)相当于最小化 J(θ).
3.4 让损失函数最小,求出对应的参数值
优化的目标函数如下:
minJ(θ)
由于上式中的 θ是一个参数向量,因此,没办法用函数导数等于0直接求出,它是没有解析解的,因此,我们可以采用梯度下降的方法求得极小值。梯度下降方法请参照 最优化学习笔记(三)——梯度下降法。
∂J(θ)∂θ=−1m∑i=1m{∂T(θ)∂θ}(1)
其中:
T(θ)=yloghθ(x)+(1−y)log[1−hθ(x)]
∂T(θ)∂θ=y1hθ(x)∂hθ(x)∂θ+(1−y)11−hθ(x)(−∂hθ(x)∂θ)=∂hθ(x)∂θ(yhθ(x)+(y−1)1−hθ(x))=∂hθ(x)∂θ(y−hθ(x)hθ(x)(1−hθ(x)))
因为:
∂hθ(x)∂θ=hθ(x)(1−hθ(x))x
则:
T(θ)=(y−hθ(x))x
由于取的是样本集中的第 i 个样本,所以将上式代入(1)
这样,就可以得到 θ的迭代公式:
θ=θ+α∂J(θ)∂θ=θ+α1m∑i=1m(hθ(xi)−yi)xi(2)
需要说明的是,我们可以从2式中看出,每次计算一次 θ,都要进行全部样本数据的计算,直到 θ收敛,还有一种可以采用随机梯度法进行计算,这样只需要遍历一遍数据集即可,下次讨论。