学习笔记之逻辑回归

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

一、数学原理

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

损失函数: J ( θ ) = 1 m i = 1 m y ( i ) l o g ( σ ( θ T X b ( i ) ) ) + ( 1 y ( i ) ) ( 1 l o g ( σ ( θ T X b ( 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 = C J ( θ ) + α L 1 J = C J ( θ ) + α L 2 J=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

发布了12 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/sun91019718/article/details/105470316