Ml3:Classification

Classification

模型

分类问题中,预测的变量 y 为离散值,以前学习的线性回归模型就不适用了。分类将用到的算法是逻辑回归( Logistic Regression )。

我们先讨论二元的分类算法,即把输入分成两类,也就是说 y 的值为 0 或 1.

逻辑回归假设函数:$h_\theta(x)=g(\theta^Tx)$ 该函数值的范围始终是 0 到 1 之间。

当 $h_\theta(x) >= 0.5$ 时,预测 y = 1

当 $h_\theta(x) < 0.5$ 时,预测 y = 1

可以理解为 $h_\theta(x)$ 是计算给定输入,输出为 y=1 的可能性。

其中 g 代表的是逻辑函数,课程中选的逻辑函数叫 Sigmoid function, 该函数的图形是 S 形。

$g(x) = \frac{1}{1+e^{-x}}$

决策边界

简单说,就是假设函数所确定的图形线。这个例子中我们有:

当 $h_\theta(x) = g(\theta^Tx) >= 0.5$ 时,预测 y = 1
当 $h_\theta(x) = g(\theta^Tx) < 0.5$ 时,预测 y = 1

根据 Sigmoid 函数性质,可以继续得出:

$\theta^Tx >= 0$ 时,预测 y = 1
$\theta^Tx < 0$ 时, 预测 y = 0

在图中画出 $y = \theta^Tx$ 的图形,如图

红色的线就是决策边界,将样本分为两类。所谓决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。注意:决策边界是假设函数的属性,由参数决定,而不是由数据集的特征决定。

非线性的决策边界

代价函数

逻辑回归假设函数的代价函数如何来选择呢?如果将 $h_\theta(x)=g(\theta^Tx)$直接带入线性回归的代价函数的话,代价函数存在局部最优解,将得到一个非凸函数(non-convexfunction)。这种非凸函数会干扰梯度下降算法,使梯度下降算法在某个局部最优解收敛。

如何设计代价函数来避免这种情况呢?

重新定义代价函数 $J(\theta)=\frac{1}{m}\sum\limits_{i=1}^{m}Cost(h_\theta(x^{(i)}),y^{(i)})$,cost的定义如下

这个 Cost 可以进一步化简合并一下,很简单,就不写出来了。$h_\theta(x)$ 与 Cost 函数的图像如下。

假如训练集中某样本 y = 1,$h_\theta(x)$ 要趋于1 的时候误差才最小,反之亦然。

这样,定义代价函数后,就可以使用梯度下降算法求最优参数解。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!