算法梳理(二)逻辑回归原理及实现

逻辑回归原理

logistic回归又称logistic回归分析是一个分类算法,是一种广义的线性回归分析模型,它可以处理二元分类以及多元分类。常用于处理分类问题。

一、从线性回归到逻辑回归

我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ。此时我们的Y是连续的,所以是回归模型。如果我们想要Y是离散的话,怎么办呢?一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为g(Y)。如果我们令g(Y)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。如果结果的类别只有两种,那么就是一个二元分类模型了。逻辑回归的出发点就是从这来的。下面我们开始引入二元逻辑回归。

二、二分类的逻辑回归

(一)过程推理

考虑二分类任务,其输出标记y值域是集合{0,1},而线性回归产生的预测值是实数,于是需要将实值转换为0/1值。于是我们用到了对数几率函数。

函数图像如下:

下面进行逻辑回归的分析和推理
y ^ \widehat{y} y 表示f(x)模型的预测值

而在逻辑回归中我们输出一个概率值,则先用 p ^ \widehat{p} p 表示f(x)结果对应的概率

如果 p ^ \widehat{p} p 大于等于0.5,则结果为1, p ^ \widehat{p} p 小于等于0.5则结果为0

利用对数几率函数由线性回归到逻辑回归的转化:

代入公式:

接下来就是给定x,y如何找到这个 θ \theta θ
我们可以使用最大似然函数直接进行求解

这里从另一个角度进行分析:
如图所示,如果y=1时, 即p>0.5, 这个时候概率p越小, 被错分为y=0的几率越大,损失函数便会越大。与之对应,如果y=0时, 即p<0.5, 这个时候概率p越大, 被错分为y=1的几率越大,损失函数便会越大。因此我们想到了下面的log函数。

对应的y=0,1两个函数如下图:
可以看出两根曲线相应的表示成了y=1,y=0时对应的损失。

则最终的代价函数可定义为:

代入对数几率函数:

如何求解呢?我们先考虑梯度下降法的方式。

为了计算简便我们可以充分利用对数几率函数和log函数

σ ( t ) \sigma(t) σ(t)求导可得:

然后再对log求导可得:

可得到求导公式:

最终可得到对应的梯度矩阵

之后取步长进行迭代,就可以得出最终的值 θ \theta θ

(二)正则化

正则化是结构风险最小化策略的实现,是在经验风险上加上一个正则项(regularizer)或罚项(penalty term)。是模型选择的典型方法。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。比较常用的正则化项有模型参数向量的范数,L1、L2等。
我们以线性回归为例,当我们的数据拟合出现过拟合的时候。

这个时候,我们可以发现w的一些值会变得很大。

而正则化的作用就是限制w参数大小。

首先来看加入L1正则化的优化目标(LASSO):
加入L1正则化的优化目标
m i n 1 2 m ∑ i = 1 n ( h w ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 2 ∣ w j ∣ min \frac{1}{2m} \sum_{i=1}^{n} (h_w(x^{(i)})-y^{(i)})^2 + \lambda \sum_{j=1}^{2} |w_j| min2m1i=1n(hw(x(i))y(i))2+λj=12wj
L1趋向于使得一部分的W值为零,可以起到特征选择的作用。

其中gamma是及其重要的参数,下面我们看一下在LASSO回归中gamma的取值对数据拟合的影响:

  1. gamma取0.01:
  1. gamma取0.1:

加入L2正则化的优化目标(Ridge):

m i n 1 2 m ∑ i = 1 n ( h w ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 2 w j 2 min \frac{1}{2m} \sum_{i=1}^{n} (h_w(x^{(i)})-y^{(i)})^2 + \lambda \sum_{j=1}^{2}w_j^2 min2m1i=1n(hw(x(i))y(i))2+λj=12wj2

L2趋向于一条曲线。

其中gamma是及其重要的参数,下面我们看一下在Ridge回归中gamma的取值对数据拟合的影响:

  1. gamma=1
  1. gamma = 100

三、scikit-learn中逻辑回归参数详解

之前做过这一工作,可参考

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值