逻辑回归
逻辑回归的思想
广义线性回归模型的种类
逻辑回归是应用非常非常广泛的分类方法,这里需要注意的是虽然逻辑回归就回归,但是实际上它处理的是分类问题!其实逻辑回归属于广义线性回归模型,广义线性回归模型有很多种类,比较常见的有以下几种,他们的主要区别在于因变量的不同:
- 当因变量Y的分布是二项分布(特别是0-1分布)的时候,称之为逻辑回归;
- 当因变量Y的分布是泊松分布,称之为泊松回归;
- 当因变量Y的分布是负二项分布,称之为负二项回归。
上帝之眼看世界
从上帝的视角来看待分类问题,万事万物的分类自然有其独特的规律,而这个规律是客观存在的,比如说对于一个数据实例
我们输入一个数据集给电脑
D = " role="presentation"> ,然后电脑根据这个数据集D学习一个模型 ( X i , Y i ) ( i = 1 , 2... n ) p a t t e n g " role="presentation"> ,显然这个模型g " role="presentation"> 与数据集D " role="presentation"> 的原始生成模型f " role="presentation"> 是有差别的,但是我们希望这个g " role="presentation"> 很接近真实的模型f " role="presentation"> ,然后我们再通过g " role="presentation"> 对新的实例进行预测。
逻辑回归也跟大多数机器学习算法一样,我们想要通过已知的训练集
人类之眼看世界
我们虽然知道这些数据集有其客观存在的分布,但是我们想要100%准确的找到这个分布还是很困难的,我们想到的方法就是给每个特征乘上一个系数,得到每个实例的分数score,然后把这个score带入一个叫做sigmoid的函数里面,得到的数值就是该实例分到1类的概率,当这个概率大于0.5的时候就分到1类,反之分到0类。显然这些都是人为规定 的,与客观规律是有差距的。用公式表示就是这样:
这些就是人类建立的模型,那么现在最关键的地方就是根据我们已有的数据集D来算出
逻辑回归的算法
如何计算这些参数w i " role="presentation"> ?
这里有两个思路来计算:①损失函数法;②最大似然估计法。
1、损失函数法:在机器学习的算法中,损失函数出现的相当频繁。常见的损失函数有四种:
0—1损失函数:比如感知机算法中用到的损失函数就是0-1损失函数
L ( y i , y i ^ ) = " role="presentation">{ 0 ( y i = y i ^ ) 1 ( y i ≠ y i ^ ) 绝对值损失函数:
L ( y i , y i ^ ) = ∑ i = 1 n | y i − y i ^ " role="presentation">| 平方损失函数:
L ( y i , y i ^ ) = ∑ i = 1 n ( y i − y i ^ " role="presentation">) 2 对数损失函数:这种损失函数用的不多,在逻辑回归里面用到了。
L ( y i , P ( Y | X ) ) = " role="presentation">{ − l o g P ( Y | X ) y i = 1 − l o g [ 1 − P ( Y | X ) ] y i = 0 注:上面表达式中
" role="presentation"> 表示的是第i个实例的真实数值或者真实分类,而y i " role="presentation"> 表示的是预测的数值或者分类,P(Y|X)表示的是实例X经过计算之后得到的分类为Y的几率。需要特别说明的是对数损失函数的理解:y i ^ 因为概率P(Y|X)的取值为[0,1],所以对数损失函数的图像如图:
从图像中可以看出来当
y i = 1 " role="presentation"> 即样本真实的分类是1类是,我们计算得到的P ( Y | X ) " role="presentation"> 这个概率越接近1,损失就越小,当其值刚好也为1时,损失函数为0,;当我们计算得到的P ( Y | X ) " role="presentation"> 这个概率越接近0,损失也就越大。同样,当真实的分类y i = 0 " role="presentation"> 时,若我们计算的P(Y|X)越接近0,我们的损失函数就越小,越接近1损失函数就越大。
基于这个思路,我们就可以构造出逻辑回归的损失函数,然后根据最优化理论来计算系数
然后需要计算的就是当损失函数L(w)最小的时候,我们的参数是什么样的,我们用梯度下降法就可以求解。这里就不赘述了。
2、最大似然估计法:
在统计学中,最大似然估计法用的特别多,主要用在参数估计中。但是为什么最大似然法能够用来估计参数?我们虽然学习了最大似然估计法很多年,但是一直没有领会这个方法的精髓。在这里给出本人的一点理解,希望对读者有一定的启发:
- 客观规律无处不在,但是只有上帝之眼才能看到!
- 我们能做的只是通过抽样然后计算来尽可能的还原这种客观规律。
举个简单的例子,一个袋子里有一堆球(包括黑球和白球),但是我们不知道黑球和白球的比例p(但是这个p的确是客观已经存在了的),于是我们就进行了有放回的10次抽样,结果抽到了9个黑球1个白球,我们如何来估计p呢?我们现在有的结论是:
,最可能出现我们实验结果的情况自然是P(抽到9个黑球1个白球)取到最大值的时候。当P(抽到9个黑球1个白球)取到最大值的时候算出的p也就是最可能的黑白球比例。P ( 抽 到 9 个 黑 球 1 个 白 球 ) = p 9 ( 1 − p " role="presentation">) 1
在逻辑回归中,我们将计算得到的score带入sigmoid函数中得到样本分到1类时候的概率,这个就类似于我们上面摸球实验中的一次摸球,用公式可以表示为:
两个式子合并就可以写成:
其中
这个式子其实很好理解,分别带入
因此我们进行了这样的n次实验,可以构造如下最大似然函数:
该式两边同时取对数,就可以得到对数似然函数:
然后求
我们将两种方法比较一下可以发现,用损失函数法得到的目标函数和用最大似然估计法得到的目标函数只相差了一个符号,所以两个方法的出发点不一样,但是得到的结果是一样的。