机器学习-逻辑回归总结

逻辑回归:

逻辑回归是用来做分类算法的,线性回归的一般形式是Y=W * x + b,Y的取值范围是[-∞, +∞],

把Y的结果带入一个非线性变换的Sigmoid函数中,即可得到[0,1]之间取值范围的数S,

S可被看成是一个概率值,如设置概率阈值为0.5,那么S大于0.5是正样本,小于0.5是负样本,实现分类。

损失函数:对数似然函数

公式中的 y=1 表示的是真实值为1时用第一个公式,真实 y=0 用第二个公式计算损失。

使用log函数:当真实样本为1是,但概率h()为0,那么log0=∞,这就对模型最大的惩罚力度;

当h()=1时,log1=0,相当于没有惩罚,也就没有损失,达到最优结果。

最后按照梯度下降法一样,求解极小值点,得到想要的模型效果。

逻辑回归优点:

  • LR能以概率的形式输出结果,而非只是0,1判定。
  • LR的可解释性强,可控度高。
  • 训练快,feature engineering之后效果好。
  • 因为结果是概率,可以做ranking model。

一些应用实例:

  • CTR预估/推荐系统的learning to rank/各种分类场景。
  • 某搜索引擎厂的广告CTR预估基线版是LR。
  • 某电商搜索排序/广告CTR预估基线版是LR。
  • 某电商的购物搭配推荐用了大量LR。
  • 某现在一天广告赚1000w+的新闻app排序基线是LR。

逻辑回归常用的优化方法:

一阶方法:梯度下降、随机梯度下降、mini 随机梯度下降降法。随机梯度下降不但速度上比原始梯度下降要快,局部最优化问题时可以一定程度上抑制局部最优解的发生。

二阶方法:牛顿法和拟牛顿法

牛顿法:通过切线与x轴的交点不断更新切线的位置,直到达到曲线与x轴的交点得到方程解。

              在实际应用中常要求解凸优化问题,也就是解函数一阶导数为 0 的位置,

              牛顿法可以给这种问题提供解决方法。牛顿法首先选择一个点作为起始点,

              并进行一次二阶泰勒展开得到导数为0的点进行一个更新,直到达到要求,

              这时牛顿法也就成了二阶求解问题,比一阶方法更快。通常 x 通常为一个多维向量,

              此时涉及Hessian矩阵(x的二阶导数矩阵)。

             缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定下降,

                        严重时甚至会失败。同时牛顿法要求函数一定二阶可导的,

                        且计算Hessian矩阵的逆复杂度很大。

拟牛顿法: 不用二阶偏导而是构造出Hessian矩阵的近似正定对称矩阵的方法。思路就是用一个特别的表达形式来模拟Hessian矩阵或者是他的逆,使表达式满足拟牛顿条件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩阵)、 L-BFGS(可以减少BFGS所需的存储空间)

逻辑回归的特征离散化:

  • 非线性!逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独权重,相当于引入非线性,提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;
  • 速度快!稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  • 鲁棒性!离散化的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0;如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  • 稳定性:特征离散化后,模型更稳定,比如对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
  • 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

如果增大L1正则项,则所有的参数w都会变成0。

参考:

https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/2.Logistics%20Regression/2.Logistics%20Regression.md

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值