逻辑回归算法梳理

逻辑回归与线性回归的联系与区别

  • 逻辑回归是一个非线性模型,sigmoid函数又称逻辑回归函数。
  • 线性回归要求变量服从正态分布,logistic回归对变量分布没有要求。线性回归要求因变量是连续性数值变量,logistic回归要求因变量是分类型变量。线性回归要求自变量和因变量呈线性关系,而logistic回归不要求自变量和因变量呈线性关系。
  • 线性回归中使用的是最小化平方误差损失函数,对偏离真实值越远的数据惩罚越严重;逻辑回归使用对数似然函数进行参数估计,使用交叉熵作为损失函数,对预测错误的惩罚是随着输出的增大,逐渐逼近一个常数
  • 逻辑回归以及线性回归同属于广义线性模型(generalized linear model),不同的就是因变量不同,如果是连续的,就是多重线性回归,如果是二项分布,就是logistic回归。logistic回归的因变量可以使二分类的,也可是多分类的。

逻辑回归的原理

将Sigmoid函数作为联系函数,sigmoid函数表示为:
σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1
在这里插入图片描述
sigmoid函数可以轻松处理0/1分类问题。根据sigmoid可以获取逻辑回归的预测函数:
h θ ( x ) = σ ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=\sigma(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=σ(θTx)=1+eθTx1
h ( x ) h(x) h(x)的值表示预测结果为1的概率,对于0/1分类问题即表示为:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=1|x;\theta) = h_\theta(x) \\ P(y=0|x;\theta) = 1 - h_\theta(x) P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)
损失函数构造为:
J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\theta) =-\frac{1}{m}[\sum _{i=1} ^{m}y^(i)logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] J(θ)=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
逻辑回归应用于垃圾邮件分类、肿瘤诊断、金融欺诈等分类判断。

逻辑回归损失函数推导及优化

以0/1分类问题为例,模型概率表示为:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=1|x;\theta) = h_\theta(x) \\ P(y=0|x;\theta) = 1 - h_\theta(x) P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)
进一步将上述两个式子整合,则可以表示为:
P ( y ( i ) ∣ x ( i ) ; θ ) = h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) P(y^{(i)}|x^{(i);\theta}) = h_\theta(x^{(i)})^{y^{(i)}}(1 - h_\theta(x^{(i)}))^{(1 - {y^{(i)}})} P(y(i)x(i);θ)=hθ(x(i))y(i)(1hθ(x(i)))(1y(i))
把模型最优问题看作是极大似然估计问题:
L ( θ ) = ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) L(\theta) = \prod _{i = 1} ^{m}P(y^{(i)}|x^{(i);\theta}) =\prod _{i = 1} ^{m} h_\theta(x^{(i)})^{y^{(i)}}(1 - h_\theta(x^{(i)}))^{(1 - {y^{(i)}})} L(θ)=i=1mP(y(i)x(i);θ)=i=1mhθ(x(i))y(i)(1hθ(x(i)))(1y(i))
采用log去对数似然:
l o g L ( θ ) = ∑ i = 1 m y ( i ) h θ ( x ( i ) ) + ( 1 − y ( i ) ) ( 1 − h θ ( x ( i ) ) ) logL(\theta) =\sum _{i = 1} ^{m}y^{(i)} h_\theta(x^{(i)}) + (1 - {y^{(i)}})(1 - h_\theta(x^{(i)})) logL(θ)=i=1my(i)hθ(x(i))+(1y(i))(1hθ(x(i)))
乘以一个系数 − 1 m -\frac{1}{m} m1,得到 J ( θ ) J(\theta) J(θ).

梯度下降方法求 J ( θ ) J(\theta) J(θ)的最小值

θ j : = θ j − α ∂ ∂ θ j J ( θ ) ( j = 0 , … n ) \theta_j:=\theta_j-\alpha \frac{\partial}{\partial\theta_j}J(\theta) (j = 0,…n) θj:=θjαθjJ(θ)(j=0,n)
式中 α \alpha α为学习步长,对于sigmoid函数 σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1,其导数为 σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z)=\sigma(z)(1-\sigma(z)) σ(z)=σ(z)(1σ(z)),现在求 ∂ J ( θ ) / ∂ θ \partial J(\theta)/\partial \theta J(θ)/θ:
∂ ∂ θ j J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) − ( 1 − y ( i ) ) 1 1 − h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) 1 σ ( θ T x ( i ) ) − ( 1 − y ( i ) ) 1 1 − σ ( θ T x ( i ) ) ] σ ( θ T x ( i ) ) ( 1 − σ ( θ T x ( i ) ) ) ∂ ∂ θ j θ T x ( i ) = − 1 m ∑ i = 1 m [ y ( i ) ( 1 − σ ( θ T x ( i ) ) ) − ( 1 − y ( i ) ) σ ( θ T x ( i ) ) ] x j ( i ) = − 1 m ∑ i = 1 m ( y ( i ) − σ ( θ T x ( i ) ) ) x j ( i ) = − 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial}{\partial\theta_j}J(\theta) = -\frac{1}{m}\sum _{i=1}^{m}[y^{(i)}\frac{1}{h_\theta(x^{(i)})}\frac{\partial}{\partial\theta_j}h_\theta(x^{(i)})-(1-y^{(i)})\frac{1}{1-h_\theta(x^{(i)})}\frac{\partial}{\partial\theta_j}h_\theta(x^{(i)})]\\ \qquad\qquad\quad =- \frac{1}{m}\sum _{i=1}^{m}[y^{(i)}\frac{1}{\sigma(\theta^Tx^{(i)})}-(1-y^{(i)})\frac{1}{1-\sigma(\theta^Tx^{(i)})}]\sigma(\theta^Tx^{(i)})(1 - \sigma(\theta^Tx^{(i)}))\frac{\partial}{\partial \theta_j}\theta^Tx^{(i)}\\ = -\frac{1}{m}\sum _{i=1}^{m}[y^{(i)}(1-\sigma(\theta^Tx^{(i)}))-(1-y^{(i)})\sigma(\theta^Tx^{(i)})]x_j^{(i)}\\ = -\frac{1}{m}\sum _{i=1}^{m}(y^{(i)} - \sigma(\theta^Tx^{(i)}) )x_j^{(i)}\\ =-\frac{1}{m}\sum _{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\\ =\frac{1}{m}\sum _{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θjJ(θ)=m1i=1m[y(i)hθ(x(i))1θjhθ(x(i))(1y(i))1hθ(x(i))1θjhθ(x(i))]=m1i=1m[y(i)σ(θTx(i))1(1y(i))1σ(θTx(i))1]σ(θTx(i))(1σ(θTx(i)))θjθTx(i)=m1i=1m[y(i)(1σ(θTx(i)))(1y(i))σ(θTx(i))]xj(i)=m1i=1m(y(i)σ(θTx(i)))xj(i)=m1i=1m(hθ(x(i))y(i))xj(i)=m1i=1m(hθ(x(i))y(i))xj(i)
因此,最终的 θ \theta θ更新过程表示为:
θ j : = θ j − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) , ( j = 0 … n ) \theta_j:=\theta_j - \alpha\sum _{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)},(j = 0…n) θj:=θjαi=1m(hθ(x(i))y(i))xj(i),(j=0n)

正则化与模型评估指标

正则化方式

L1正则化在原来的损失函数基础上加上权重参数的绝对值的和
L = E i n + λ ∑ j ∣ w j ∣ L=E_{in} + \lambda\sum _{j}|w_j| L=Ein+λjwj

L2正则化在原来的损失函数基础上加上权重参数的平方和
L = E i n + λ ∑ j w j 2 L=E_{in} + \lambda\sum _{j}w_j^2 L=Ein+λjwj2

评估指标

均方误差(RMSE): R M S E = 1 n ∑ i = 1 n ( y ( i ) − y ^ ( i ) ) 2 RMSE =\sqrt{\frac{1}{n}\sum _{i=1}^{n}(y^{(i)}-\hat{y}^{(i)})^2} RMSE=n1i=1n(y(i)y^(i))2
最大绝对误差(MAE) M A E = m a x ∣ y ( i ) − y ^ ( i ) ∣ MAE=max|y^{(i)}-\hat{y}^{(i)}| MAE=maxy(i)y^(i)
平均绝对误差(AAE) A A E = ∑ i = 1 n ∣ y ( i ) − y ^ ( i ) ) ∣ n AAE=\frac{\sum _{i=1}^{n}|y^{(i)}-\hat{y}^{(i)})|}{n} AAE=ni=1ny(i)y^(i))
R-Square R 2 = 1 − ∑ ( y ( i ) − y ^ ( i ) ) 2 ∑ ( y ( i ) − y ˉ ( i ) ) 2 R^2=1-\frac{\sum(y^{(i)}-\hat{y}^{(i)})^2}{\sum(y^{(i)}-\bar{y}^{(i)})^2} R2=1(y(i)yˉ(i))2(y(i)y^(i))2

逻辑回归的优缺点

逻辑回归(LR)优点:
1-概率的形式输出结果,不只是0和1的判定
2-可解释强,可控性高
3- 训练快
4- 结果是概率,可以做ranking model
5- 添加feature简单,应用场景多,CTR预估,推荐系统的Learning to rank,电商搜索排序基线等
缺点:1)容易欠拟合,分类精度不高。2)数据特征有缺失或者特征空间很大时表现效果并不好。

样本不均衡问题解决办法

1-样本充足的情况下可以做下采样——抽样,样本不足的情况下做上采样——对样本少的做重复;
2- 修改损失函数,给不同权重。比如负样本少,就可以给负样本大一点的权重;
3- 采样后的predict结果,用作判定请还原。

逻辑回归Sklearn

参数详见:
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.decision_function 逻辑回归
penalty:惩罚参数 L 1 L1 L1或者 L 2 L2 L2选项,默认为 L 2 L2 L2
dual:对偶或者原始方法,默认是False,对偶方法用于求解线性多核的L2惩罚项上
tol:停止求解的标准,默认1e-4。
c:正则化系数 λ \lambda λ的倒数,默认1.0,数值越小表示正则化系数越大
fit_intercept:是否存在截距偏差,默认为True
intercept_scaling:正则化项为“liblinear”并且“fit_incept”为True时有用,默认为1
class_weight:用于表示分类模型中各类型的权重,可以是字典类型或者“balance”字符串,默认为不输入
random_state:随机种子数,int类型,正则化优化算法为sag以及liblinear时有用。
solver:优化算法选择参数,只有五个可选参数newton-cg,lbfgs,liblinear,sag,saga,默认是liblinear。
1)liblinear --小规模数据集,sag和saga适用于大数据集
2) 多分类问题,newton-cg,sag,saga和lbfgs能处理多项损失
3) newton-cg,sag和lbfgs三种优化算法需要损失函数的一阶或者二阶连续导数,因此不能用于L1正则化,只能用于L2正则化
max_iter:算法收敛最大迭代次数,默认是10,在正则化算法为newton-cg,sag和lbfgs有用
multi_class:分类方式选择参数,可选参数为ovr(One-vs-rest)和multinomial(many-vs-many,MvM),默认为ovr。
verbose:日志冗余长度,int类型默认为0,1是偶尔输出结果,大于1,对每个子模型都有输出。
warm_start:热启动参数,默认为False,如果是True,下一次重新使用上一次调用作为初始化
n_jobs:并行数目,默认为1,1-用CPU一个内核运行,2-用CPU两个内个运行程序,-1-用所有CPU内核运行程序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归是一种分类算法,它的主要思想是根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。 与线性回归相似,逻辑回归通过一组预测器变量来预测特征与输出结果。但逻辑回归更适用于二分类问题,输出结果为0或1。通过方程系数,我们可以估计模型中自变量的比率。这使得逻辑回归可以用于确定某个事件的可能性。 逻辑回归和多重线性回归的区别在于因变量的不同。多重线性回归的因变量只有一个,而逻辑回归的因变量可以是二分类,也可以是多分类。广义线性模型家族中的模型基本形式相似,主要区别在于因变量的不同。例如,如果因变量是连续的,那么就是多重线性回归;如果因变量是二项分布,那就是逻辑回归;如果因变量是泊松分布,那就是泊松回归。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [逻辑回归算法梳理](https://blog.csdn.net/pandawang830/article/details/88867221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [逻辑回归算法](https://blog.csdn.net/qq_39691463/article/details/119257621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值