机器学习之逻辑回归

目录

不必每分钟都学习,但求学习中每分钟都有收获!!!

逻辑回归是什么?

  • 我们知道多元线性回归是用线性的关系来拟合一个事情的发生规律,找到这个规律的表达公式,将得到的数据带入公式以用来实现预测的目的,我们习惯将这类预测未来的问题称作回归问题。机器学习中按照目的不同可以分为两大类:回归和分类。今天要说的就是用逻辑回归解决分类问题
  • logistic回归是一种广义线性回归,因此与多重线性回归分析有很多相同之处。它们的模型形式基本上相同,都具有 w x + b % wx+b wx+b,其中 w % w w b % b b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将 w x + b % wx+b wx+b作为因变量,即 y = w x + b % y=wx+b y=wx+b,而logistic回归则通过函数L将 w x + b % wx+b wx+b对应一个隐状态p, p = L ( w x + b ) % p =L(wx+b) p=L(wx+b),然后根据p 与1-p的大小决定因变量的值。如果L是logistic函数,就是logistic回归,如果L是多项式函数就是多项式回归。
  • logistic回归的因变量可以是二分类(sigmoid函数)的,也可以是多分类的,但是二分类的更为常用,也更加容易解释,多分类可以使用softmax方法进行处理。实际中最为常用的就是二分类的logistic回归

什么是Sigmoid函数?

如下图:
在这里插入图片描述

  • 可以看出,sigmoid函数连续,光滑,严格单调,以(0,0.5)中心对称,是一个非常良好的阈值函数。
  • 当x趋近负无穷时,y趋近于0;趋近于正无穷时,y趋近于1;x=0时,y=0.5。当然,在x超出[-6,6]的范围后,函数值基本上没有变化,值非常接近,在应用中一般不考虑。
  • Sigmoid函数的值域范围限制在(0,1)之间,我们知道[0,1]与概率值的范围是相对应的,这样sigmoid函数就能与一个概率分布联系起来了。
  • 上图中函数中t无论取什么值,其结果都在[0,-1]的区间内,我们假设分类的阈值是0.5,那么超过0.5的归为1分类,低于0.5的归为0分类,阈值是可以自己设定的。
  • 接下来我们把 w x + b % wx+b wx+b带入t中就得到了我们的逻辑回归的一般模型方程:
    P ( w , b ) = 1 1 + e ( w ⋅ x + b ) P(w,b)= \frac{1}{1+e^{(w \cdot x+b) } } P(w,b)=1+e(wx+b)1
    结果P也可以理解为概率,换句话说概率大于0.5的属于1分类,概率小于0.5的属于0分类,这就达到了分类的目的。

逻辑斯蒂分布是什么!

  • 设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数
    F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ ( 1 ) f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 ( 2 ) F(x) = P(X \leq x) = \frac{1}{1+ e^{-(x-\mu)/\gamma}} \qquad \qquad (1) \\ f(x)= F'(x) = \frac{e^{-(x-\mu)/\gamma}}{\gamma (1+e^{-(x-\mu)/\gamma})^2} \qquad \qquad (2) F(x)=P(Xx)=1+e(xμ)/γ1(1)f(x)=F(x)=γ(1+e(xμ)/γ)2e(xμ)/γ(2)

逻辑斯蒂回归模型

  • 二项逻辑斯蒂回归模型是一种分类模型,由条件概率分布p(Y|X)表示,形式为参数化的逻辑斯蒂分布。这里,随机变量X取值为实数,随机变量Y取值为1或0。
  • 概率分布定义如下:
    P ( Y = 1 ∣ x ) = e w ⋅ x + b 1 + e w ⋅ x + b ( 3 ) P ( Y = 0 ∣ x ) = 1 1 + e w ⋅ x + b ( 4 ) P(Y=1 |x)= \frac{e^{w \cdot x +b}}{1+e^{w \cdot x +b} } \qquad \qquad(3) \\ P(Y=0 |x)= \frac{1}{1+e^{w \cdot x +b} } \qquad \qquad(4) P(Y=1x)=1+ewx+bewx+b(3)P(Y=0x)=1+ewx+b1(4)
    对于给定的输入实例x,按照(3),(4)式计算,比较两个条件概率的大小,将实例x分到概率值较大的那一类。
  • 有时为了方便,将权值向量和输入向量加以扩充,w=(w(1),w(2),⋯,w(n),b),x=(x(1),x(2),⋯,x(n),1),这时逻辑斯蒂回归模型如下:
    P ( Y = 1 ∣ x ) = e w ⋅ x 1 + e w ⋅ x ( 5 ) P ( Y = 0 ∣ x ) = 1 1 + e w ⋅ x ( 6 ) P(Y=1 |x)= \frac{e^{w \cdot x }}{1+e^{w \cdot x } } \qquad \qquad(5) \\ P(Y=0 |x)= \frac{1}{1+e^{w \cdot x } } \qquad \qquad(6) P(Y=1x)=1+ewxewx(5)P(Y=0x)=1+ewx1(6)
  • 一个事件发生的几率是指该事件发生的概率与不发生的概率的比值,对于逻辑回归而言,几率的对数为 log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x ( 7 ) \log \frac{P(Y=1|x)}{1-P(Y=1|x)}=w \cdot x\qquad\qquad (7) log1P(Y=1x)P(Y=1x)=wx(7)
  • 这就是说,在逻辑斯蒂回归模型中,输出Y=1的对数几率是输入x的线性函数。线性函数的值越接近正无穷,概率值越接近1,线性函数的值越接近负无穷,概率值就越接近0。

基本的原理是什么?

  • 可以应用极大似然估计法估计模型的参数,从而得到逻辑斯蒂回归模型。
    假设: P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x) = \pi(x), P(Y=0|x)=1- \pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)那么似然函数为: ∏ i = 1 N π ( x ) y i ( 1 − π ( x ) ) ( 1 − y i ) \prod_{i=1}^N \pi(x)^{y_i} (1-\pi(x))^{(1-y_i)} i=1Nπ(x)yi(1π(x))(1yi)对数似然函数为: L ( w ) = log ⁡ ∏ i = 1 N π ( x i ) y i ( 1 − π ( x i ) ) ( 1 − y i ) = ∑ i = 0 N { y i log ⁡ ( π ( x i ) ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) } = ∑ i = 1 N { y i log ⁡ π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) } = ∑ i = 1 N { y i ( w ⋅ x i ) − log ⁡ ( 1 + e w ⋅ x ) } (8) \begin{aligned} L(w) &= \log \prod_{i=1}^N \pi(x_i)^{y_i} (1-\pi(x_i))^{(1-y_i)} \\ &= \sum_{i=0}^N \{y_i \log(\pi(x_i)) + (1-y_i)log(1-\pi(x_i))\} \\ &=\sum_{i=1}^N \{y_i \log{\frac{\pi(x_i)}{1-\pi(x_i)}} +log(1-\pi(x_i))\} \\ &=\sum_{i=1}^N\{y_i (w \cdot x_i) -\log(1+e^{w \cdot x}) \} \tag{8} \end{aligned} L(w)=logi=1Nπ(xi)yi(1π(xi))(1yi)=i=0N{yilog(π(xi))+(1yi)log(1π(xi))}=i=1N{yilog1π(xi)π(xi)+log(1π(xi))}=i=1N{yi(wxi)log(1+ewx)}(8)
    对L(w)求极大值,得到w的估计值: w = a r g min ⁡ w ∑ i = 1 N { log ⁡ ( 1 + e w ⋅ x ) − y i ( w ⋅ x i ) } w = arg \min_w \sum_{i=1}^N\{ \log(1+e^{w \cdot x}) -y_i (w \cdot x_i)\} w=argwmini=1N{log(1+ewx)yi(wxi)}剃度下降法求解w: ∂ l ∂ w = ∑ i = 1 N ( y i x i − π ( x i ) x i ) = ∑ i = 1 N ( y i − π ( x i ) ) x i \frac {\partial l}{\partial w} =\sum_{i=1}^{N} (y_i x_i - \pi(x_i)x_i )=\sum_{i=1}^{N} (y_i - \pi(x_i) )x_i wl=i=1N(yixiπ(xi)xi)=i=1N(yiπ(xi))xi

逻辑斯蒂回归如何让解决多分类?

  • 我们可以从二分类的问题过渡到多分类问题,具体思路如下:
    • 1.将类型class1看作正样本,其他类型全部看作负样本,然后我们就可以得到样本标记类型为该类型的概率p1。
    • 2.然后再将另外类型class2看作正样本,其他类型全部看作负样本,同理得到p2。
    • 3.以此循环,我们可以得到该待预测样本的标记类型分别为类型class i时的概率pi,最后我们取pi中最大的那个概率对应的样本标记类型作为我们的待预测样本类型。
      在这里插入图片描述说白了就是使用二分类的思想依次划分,找出概率最大的

逻辑回归常用的优化方法有哪些?

一阶方法
  • 梯度下降、随机梯度下降、mini 随机梯度下降降法。随机梯度下降不但速度上比原始梯度下降要快,局部最优化问题时可以一定程度上抑制局部最优解的发生。
二阶方法
  • 牛顿法、拟牛顿法:
    这里详细说一下牛顿法的基本原理和牛顿法的应用方式。牛顿法其实就是通过切线与x轴的交点不断更新切线的位置,直到达到曲线与x轴的交点得到方程解。在实际应用中我们因为常常要求解凸优化问题,也就是要求解函数一阶导数为0的位置,而牛顿法恰好可以给这种问题提供解决方法。实际应用中牛顿法首先选择一个点作为起始点,并进行一次二阶泰勒展开得到导数为0的点进行一个更新,直到达到要求,这时牛顿法也就成了二阶求解问题,比一阶方法更快。我们常常看到的x通常为一个多维向量,这也就引出了Hessian矩阵的概念(就是x的二阶导数矩阵)。

  • 缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定的下降,严重时甚至会失败。还有就是牛顿法要求函数一定是二阶可导的。而且计算Hessian矩阵的逆复杂度很大。

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

逻辑回归有什么优点or缺点!

  • LR是解决工业规模问题最流行的算法。在工业应用上,如果需要分类的数据拥有很多有意义的特征,每个特征都对最后的分类结果有或多或少的影响,那么最简单最有效的办法就是将这些特征线性加权,一起参与到决策过程中。比如预测广告的点击率,从原始数据集中筛选出符合某种要求的有用的子数据集等等。
优点
  • 预测结果是界于0和1之间的概率;
  • 可以适用于连续性和类别性自变量;
  • 适合需要得到一个分类概率的场景。
  • 计算代价不高,容易理解实现。LR在时间和内存需求上相当高效。它可以应用于分布式数据,并且还有在线算法实现,用较少的资源处理大型数据。
  • LR对于数据中小噪声的鲁棒性很好,并且不会受到轻微的多重共线性的特别影响。(严重的多重共线性则可以使用逻辑回归结合L2正则化来解决,但是若要得到一个简约模型,L2正则化并不是最好的选择,因为它建立的模型涵盖了全部的特征。)
缺点
  • 容易欠拟合,分类精度不高。
  • 数据特征有缺失或者特征空间很大时表现效果并不好。
  • 对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
  • 预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着​log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。

逻辑斯特回归为什么要对特征进行离散化?

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

与其他算法比较!!!

  • 线性回归做分类因为考虑了所有样本点到分类决策面的距离,所以在两类数据分布不均匀的时候将导致误差非常大;
  • LR和SVM克服了这个缺点,其中LR将所有数据采用sigmod函数进行了非线性映射,使得远离分类决策面的数据作用减弱;
  • SVM则是直接去掉了远离分类决策面的数据,只考虑支持向量的影响。
  • 但是对于这两种算法来说,在线性分类情况下,如果异常点较多无法剔除的话,LR中每个样本都是有贡献的,最大似然后会自动压制异常的贡献;
  • SVM+软间隔对异常比较敏感,因为其训练只需要支持向量,有效样本本来就不高,一旦被干扰,预测结果难以预料。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

年少无为呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值