逻辑回归的思想
广义线性回归模型的种类
逻辑回归是应用很是很是普遍的分类方法,这里须要注意的是虽然逻辑回归就回归,可是实际上它处理的是分类问题!其实逻辑回归属于广义线性回归模型,广义线性回归模型有不少种类,比较常见的有如下几种,他们的主要区别在于因变量的不一样:web
- 当因变量Y的分布是二项分布(特别是0-1分布)的时候,称之为逻辑回归;
- 当因变量Y的分布是泊松分布,称之为泊松回归;
- 当因变量Y的分布是负二项分布,称之为负二项回归。
上帝之眼看世界
从上帝的视角来看待分类问题,万事万物的分类天然有其独特的规律,而这个规律是客观存在的,好比说对于一个数据实例
X1=(1,2,3,4,5)
,它的五个特征就决定了它属于0类,而另外一个数据实例
X2=(6,7,8,9,10)
,它的五个特征就决定了它属于1类,这是客观存在的。而咱们人类想要经过本身的一些算法来把这个客观存在的规律还原出来,所以咱们设计了一些算法来尽量的接近它们自己的规律。这里引用林轩田老师《统计学习基石》里面的一段笔记:算法
咱们输入一个数据集给电脑
D=(Xi,Yi)(i=1,2...n)
,而后电脑根据这个数据集D学习一个模型
patteng
,显然这个模型
g
与数据集
D
的原始生成模型
f
是有差异的,可是咱们但愿这个
g
很接近真实的模型
f
,而后咱们再经过
g
对新的实例进行预测。机器学习
逻辑回归也跟大多数机器学习算法同样,咱们想要经过已知的训练集
D=(Xi,Yi)(i=1,2...n)
来获得上帝之眼可以看到的那个数据集客观存在的分布,从而对新的实例准确分类。svg
人类之眼看世界
咱们虽然知道这些数据集有其客观存在的分布,可是咱们想要100%准确的找到这个分布仍是很困难的,咱们想到的方法就是给每一个特征乘上一个系数,获得每一个实例的分数score,而后把这个score带入一个叫作sigmoid的函数里面,获得的数值就是该实例分到1类的几率,当这个几率大于0.5的时候就分到1类,反之分到0类。显然这些都是人为规定 的,与客观规律是有差距的。用公式表示就是这样:
函数
score:z=∑i=1nwixi
sigmoid:f(z)=11+e−z
这些就是人类创建的模型,那么如今最关键的地方就是根据咱们已有的数据集D来算出
wi
,一旦咱们获得了这些系数,对于新的实例咱们就能够直接带入上面两个式子计算,从而按照咱们本身创建的模型来对新的实例进行分类。
逻辑回归的算法
如何计算这些参数
wi
?
这里有两个思路来计算:①损失函数法;②最大似然估计法。
一、损失函数法:在机器学习的算法中,损失函数出现的至关频繁。常见的损失函数有四种:学习
0—1损失函数:好比感知机算法中用到的损失函数就是0-1损失函数
优化
L(yi,yi^)={01(yi=yi^)(yi≠yi^)
绝对值损失函数:
atom
L(yi,yi^)=∑i=1n|yi−yi^|
平方损失函数:
spa
L(yi,yi^)=∑i=1n(yi−yi^)2
对数损失函数:这种损失函数用的很少,在逻辑回归里面用到了。
设计
L(yi,P(Y|X))={−logP(Y|X)−log[1−P(Y|X)]yi=1yi=0
注:上面表达式中
yi
表示的是第i个实例的真实数值或者真实分类,而
yi^
表示的是预测的数值或者分类,P(Y|X)表示的是实例X通过计算以后获得的分类为Y的概率。须要特别说明的是对数损失函数的理解:
由于几率P(Y|X)的取值为[0,1],因此对数损失函数的图像如图:
从图像中能够看出来当
yi=1
即样本真实的分类是1类是,咱们计算获得的
P(Y|X)
这个几率越接近1,损失就越小,当其值恰好也为1时,损失函数为0,;当咱们计算获得的
P(Y|X)
这个几率越接近0,损失也就越大。一样,当真实的分类
yi=0
时,若咱们计算的P(Y|X)越接近0,咱们的损失函数就越小,越接近1损失函数就越大。
基于这个思路,咱们就能够构造出逻辑回归的损失函数,而后根据最优化理论来计算系数
wi
,损失函数咱们能够构造为:
L(w)=−∑i=1n[yilog(P(Y|xi))+(1−yi)log(1−P(Y|xi))]
而后须要计算的就是当损失函数L(w)最小的时候,咱们的参数是什么样的,咱们用梯度降低法就能够求解。这里就不赘述了。
二、最大似然估计法:
在统计学中,最大似然估计法用的特别多,主要用在参数估计中。可是为何最大似然法可以用来估计参数?咱们虽然学习了最大似然估计法不少年,可是一直没有领会这个方法的精髓。在这里给出本人的一点理解,但愿对读者有必定的启发:
在逻辑回归中,咱们将计算获得的score带入sigmoid函数中获得样本分到1类时候的几率,这个就相似于咱们上面摸球实验中的一次摸球,用公式能够表示为:
P(yi=1|X=xi)=f(z)
P(yi=0|X=xi)=1−f(z)
两个式子合并就能够写成:
P(yi|X=xi)=[f(z)]yi[1−f(z)]1−yi
其中
z=∑ni=0wixi,f(z)=11+e−z
这个式子其实很好理解,分别带入
yi=1或者0
就能够获得上面两个分开写的式子,而这个式子能够表示成一次实验中,对于实例
xi
咱们计算获得的它属于1类的几率值是多少。
所以咱们进行了这样的n次实验,能够构造以下最大似然函数:
L(w)=∏i=1n[f(z)]yi[1−f(z)]1−yi
该式两边同时取对数,就能够获得对数似然函数:
l(w)=logL(w)=∑i=1n[yilog(f(z))+(1−yi)log(1−f(z))]
而后求
l(w)
取最大值时候的参数w,咱们就能够认为这个求得的参数w是最接近于上帝之眼看到的那个客观存在的w。以后求最大值用到的方法是梯度上升算法。
咱们将两种方法比较一下能够发现,用损失函数法获得的目标函数和用最大似然估计法获得的目标函数只相差了一个符号,因此两个方法的出发点不同,可是获得的结果是同样的。