当前位置: 首页 > 后端技术 > Python

一、逻辑回归

时间:2023-03-26 16:28:41 Python

1、逻辑回归:逻辑回归的本质:假设数据服从某种分布,采用最大似然估计来估计参数。LR其实就是一个分类。以一个简单的二元分类为例,假设有一个训练样本:$$\left\{{\left({x_1^1,x_2^1}\right),{y^1}}\right\},\left\{{\left({x_1^2,x_2^2}\right),{y^2}}\right\},...,\left\{{\left({x_1^m,x_2^m}\right),{y^m}}\right\}$$其中y只能取0和1的值,我们想找到一个可以对新样本进行分类的超平面$$\{({{\rmX}_1},{{\rmX}_2}),Y\}$$具有最高精度,超平面定义:$${w^T}x+b=0$$就是求$$\left({{w_1},{w_2},b}\right)$$,并考虑$${w^T}x+b$$是连续的,而y只有0和1值。因此包裹了一层sigmod函数(可导),将$${w^T}x+b$$压缩为0到1之间的概率值,如下:$$\begin{array}{l}P(y=1|w,b,x)=\sigma({w^T}+b)=\frac{1}{{1+{e^{-({w^T}x+b)}}}},\\P(y=0|w,b,x)=1-\sigma({w^T}+b)=\frac{{{e^{-({w^T}x+b)}}}}{{1+{e^{-({w^T}x+b)}}}}\end{array}$$如何找到$$\left({{w_1},{w_2},b}\right)$$,使用似然函数(乘以所有判断对的概率):$$L(w,b)=\prod\limits_{i=1}^m{{{[p({x_i})]}^{{y_i}}}{{[1-p({x_i})]}^{1-{y_i}}}}$$两边取对数似然函数:$$\begin{array}{l}L(w,b)=\sum\limits_{i=1}^m{{y_i}\lnp({x_i})+(1-{y_i})(1-p({x_i}))},\\p({x_i})=\frac{1}{{1+{e^{-({w^T}x+b)}}}}\end{array}$$loss函数是负对数似然函数,损失函数为:$$L(w,b)=-\sum\limits_{i=1}^m{{y_i}\lnp({x_i})+(1-{y_i})(1-p({x_i}))}$$使用随机梯度ient下降法求解(随机样本):$$\nablaF(w)=\sum\limits_{i=1}^m{({y_i}-\frac{1}{{1+{e^{-({w^T}x+b)}}}}){x_i}}$$更新参数$$\left({{w},b}\right)$$$${w_{t+1}}={w_t}+\eta({y_i}-\frac{1}{{1+{e^{-({w^T}x+b)}}}}){x_i}$$LR和线性回归,前者是分类,对比后者讨论一层sigmod函数LR和SVM,LR使用交集叉熵,SVM使用HingeLoss;LR是一个参数模型。参数化模型的前提是假设数据服从一定的分布。SVM是一种非参数模型。非参数模型分布存在但不知道分布形式;SVM依赖于距离,一般不会直接将原始数据丢给LR,而是将特征离散化。这样做的好处是泛化能力大,计算速度加快。参考:https://zhuanlan.zhihu.com/p/...