机器学习笔记之逻辑回归
一、前言——逻辑分类 机器学习研究的另一种问题为分类问题。给出一些信息,判断是或不是某种物体、属性。比如说给出病人的各项检测指标,判断其是否患病。 对于是、否的判断,这里用 1、0 表示。则训练样本就与之前的线性与多项式回归样本类似。 我们可以试着用一元线性回归来拟合分类问题的样本。 比如对于如下的样本数据 进行一元线性回归后得到 我们将数值大于 0.5 的部分看做预测为真,小于 0.5 的部分看做预测为假。可以看到,此时一元线性回归就已经可以使所有样本点符合判断结果了。 但如果我们在 x 值更大的区域增加更多的样本点,再进行回归 可以看到,有一部分应为 1 的点被分在了 y < 0.5 的部分,被预测为 0。这说明只凭线性回归无法解决分类问题。我们需要另一种回归方法。 二、逻辑回归 线性回归失效的原因在于,拟合的目标是对所有点的方差最小,在分类边界上的样本可能因为其他样本的影响而被分到另一类。而为什么会受到其他样本的影响呢?因为线性回归得到的表达式值域趋向于无穷;而样本的结果却只有 0、1。所以对于一个样本,只要它的特征数值足够大或足够小,就足以产生极大的损失。(为什么可能出现足够远的样本?因为分类问题需要划分出一个边界,在边界两侧可能存在足够大的范围。) 我们要对线性回归进行修改,需要将回归得到的表达式的值域缩小到 0 至 1 的范围。 这里引入 Sigmoid 函数 $$ S(z) = \frac{1}{1 + e^{-z}} $$ 它的图像如下 该函数定义域为 $(-\infty, +\infty)$,值域为 $(0, 1)$ 假设原本线性回归的函数为 $$ f_{\vec{w}, b}(\vec{x}) = \vec{w} \cdot \vec{x} + b $$ 则现在令 $$ f_{\vec{w}, b}(\vec{x}) = S(\vec{w} \cdot \vec{x} + b) $$ 即 $$ f_{\vec{w}, b}(\vec{x}) = \frac{1}{1 + e^{\vec{w} \cdot \vec{x} + b}} $$ 为新的函数。其中 $S(z)$ 即为 Sigmoid 函数。这样,表达式的值域就缩小为了 $(0, 1)$,从而消除了值域对损失的影响。...