上一节简单的介绍了一下线性回归,通过简单的线性模型进行预测结果,并不断逼近真实标记值,实现回归。
那如果我们想用线性模型去实现分类呢?
2.1逻辑回归
线性回归预测出的是一个连续型的值,要想根据预测出的值进行分类,从最简单的,一个二分类任务来讨论,我们要根据预测出的值判断这是正类还是负类,将(-∞,+∞)的预测值,转变为可以用来分类的值。
那我们设定一个阈值,对于回归的输出,如果输出大于这个阈值就为正类,反之为负类?
看上去是可行的,但回归出的数据往往差距是非常大的,会有非常大或非常小的值(离群值)影响阈值和分类结果,因此不太可行。
因此我们想有没有一种方法可以很好的解决离群值的问题呢?
因此就引入了sigmoid函数,将结果(-∞,+∞)映射到(0,1)的范围内。
这样一个模型的输出就可以整理为:
其中
这样的模型就称为逻辑回归模型,虽然写成回归,但是这是一种分类算法!!!
当线性回归的输出,经过sigmoid函数,得到一个0到1之间的值时,这个值的意义就是这个样本被分为正类的概率值。
其中计算出的g(z)表示该样本为正例的概率,而1-g(z)就是样本为负例的概率。
2.2 阈值选择
对于逻辑回归的输出是一个0-1之间的小数,我们通常是将阈值定为0.5,看着比较舒服,满足大于0.5为正例,小于0.5为反例。但这并不强求,在实际应用中,阈值是可以自由调节的。
2.3 使用极大似然估计 计算
和b
极大似然估计 就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
而在2.1中,我们知道,一个样本输入为x,通过计算得到最后的输出g(z),其中,可以用
= g(z) 来表示这个样本被分为正例的概率,用
表示分为负类的概率,可写做(这个二分类中正类=1,负类=0):
在已知这个样本的真实标签y的情况下,这个样本正确分类的概率可以写成如下:
数据集中的每一个样本正确分类的概率都可以写成这样,我们训练的目的,就是得到使得数据集所有样本正确分类的概率最大、、这里就用到了极大似然估计,就是每一个样本正确分类的概率乘积是最大的,记为
,我们就是要求max
,对于一个连乘的式子,我们用取log的方式,变成连加的形式:
求让最大的
,这里采用梯度上升的办法(梯度上升和梯度下降没啥区别,就是一个用求来最大化问题,另一个求最小化问题)过程如下:
上图中,是学习率,通过最后
的更新公式,可以看出每次更新
都用上了所有的样本,这是批量梯度上升方法,其他还有随机梯度上升、批量梯度上升方法(这些等以后专门整理一个梯度下降的内容吧。。)。
总结一下,在训练逻辑回归模型时,我们初始化一组,计算并使用梯度上升的方法更新它,迭代更新这一步,直到达到一定的迭代次数后者得到一个比较小的损失函数停止。(逻辑回归中的损失函数可以理解为交叉熵损失函数,就是
,我们求解max
,就是求min
)
交叉熵损失函数的公式如下:
3.线性回归和逻辑回归
两种方法的基本概念都介绍完了,总结一下它俩的关系
线性回归输出+sigmoid=逻辑回归的输出
线性回归用于回归、逻辑回归用于分类;线性回归计算参数主要使用最小二乘法、逻辑回归用梯度上升