您的位置:首页 > 其它

机器学习笔记(十一)——逻辑回归

2016-07-09 11:38 375 查看

一、引言

虽然说是逻辑回归,其实既可以用它做回归,也可以用它做分类。一般我们从最简单的二分类问题开始了解他,当然也可以做多分类。

二、Logistic Regression 的一般步骤

找一个合适的假设

构造损失函数

让损失函数最小,求出对应的参数值

三、二分类问题下Logistic Regression的过程

3.1 Logistic Function

机器学习笔记(十)——Logistic Function AND Softmax Function中我们已经讨论过了Logistic 函数,因此,建议不熟悉的读者参考上述文章。

3.2 找一个合适的假设

假设样本是各个贷款人的信息,标签是他是否违约。目标是建立一个模型,用来预测一个贷款人违约的可能性,而银行根据这个信息决定是否放款给当前的贷款人。那么,很明显,这是一个分类问题,根据贷款人的一些信息和已知的标签,我们建立模型,去预测新来的贷款人违约的可能性。这里将贷款人的各个信息,如学历、年收入、信用卡违约次数等作为x,将他是否违约记为y,其中y=1表示违约,y=0表示不违约。那么,一个贷款人违约的可能性为:

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(θ)=∏i=1mP(yi|xi;θ)

利用最大似然求θ,取对数最大似然:

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(yi−hθ(xi))xi=1m∑i=1m(hθ(xi)−yi)xi

这样,就可以得到θ的迭代公式:

θ=θ+α∂J(θ)∂θ=θ+α1m∑i=1m(hθ(xi)−yi)xi(2)

需要说明的是,我们可以从2式中看出,每次计算一次θ,都要进行全部样本数据的计算,直到θ收敛,还有一种可以采用随机梯度法进行计算,这样只需要遍历一遍数据集即可,下次讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习