欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习笔记之逻辑回归

程序员文章站 2024-01-04 09:38:10
...

引言
今天我们学习逻辑回归。我们都知道线性回归模型是y=wTX+by=w^TX+b,我们对他进行变形,得到lny=wTX+blny=w^TX+b,这就是“对数线性回归”(logit linear regression),就是我们所说的逻辑回归。再变形y=ewTX+by=e^{w^TX+b},一般地,把y=f(wTX+b)y=f(w^TX+b)形式,叫做广义线性模型。

一、数学原理

因为X是连续的,所以wTX+bw^TX+b的结果也是连续的,为了能做二分类问题,我们借鉴单位阶跃函数。如下图:
学习笔记之逻辑回归
我们引入sigmoid 函数,逻辑回归形式是y=11+ez,z=wTX+by=\frac{1}{1+e^{-z}},z=w^TX+b。我们令y≥阈值,结果为正例,反之,为负例(阈值一般为1/2)。
注:逻辑回归借鉴了概率思维,但不是真正的概率,所以和贝叶斯算法有区别。

损失函数:J(θ)=1mi=1my(i)log(σ(θTXb(i)))+(1y(i))(1log(σ(θTXb(i))))J(θ)=-\frac{1}{m} \sum_{i=1}^{m}y^{(i)}log(σ(θ^T・X_b^{(i)}))+(1-y^{(i)})(1-log(σ(θ^T・X_b^{(i)}))),我们在寻找最优的逻辑回归模型时,就是找到一组参数θ,使得损失函数J(θ)达到最小值。

二、代码实现

1、手工代码实现
实现过程:
①、定义sigmoid方法,使用sigmoid方法生成逻辑回归模型;
②、定义损失函数,并使用梯度下降法得到参数;
③、将参数代入到逻辑回归模型中,得到概率;
④、将概率转化为分类。

在这里插入代码片

2、sklearn实现
上一篇文章,我们学习了正则化,可以提高模型的泛化能力。sklearn的逻辑回归算法是直接加入正则化的,参数是penalty,默认是L2。另外新增一个超参数C。即损失函数形式是J=CJ(θ)+αL1J=CJ(θ)+αL2J=CJ(θ)+αL1 或 J=CJ(θ)+αL2

参考文献:《机器学习 周志华著》第3章线性模型 3.2节、3.3节
参考文章:
https://mp.weixin.qq.com/s/xfteESh2bs1PTuO2q39tbQ
https://mp.weixin.qq.com/s/nZoDjhqYcS4w2uGDtD1HFQ
https://mp.weixin.qq.com/s/ex7PXW9ihr9fLOjlo3ks4w
https://mp.weixin.qq.com/s/97CA-3KlOofJGaw9ukVq1A
https://mp.weixin.qq.com/s/BUDdj4najgR0QAHhtu8X9A

相关标签: 机器学习

上一篇:

下一篇: