机器学习笔记08:二分类问题 木灵的炼金工作室

二分类问题

当我们处理的回归问题的标记集只有两个离散的取值(通常为{0, 1})时,这样的问题被称为二分类问题。

我们可以尝试使用前述的针对于连续问题的线性回归来处理它。通过提出一个拟合公式和一个判断阈值来实现连续回归向离散回归的对映。然而,在面对一些极端的数据时,连续的线性回归会出现很严重的偏差:

问题

Logistic回归:”对数几率”

上述的错误是由于线性函数的性质决定:线性函数在面对较大的数据时会返回一个非常大的预测值,而这个点实际的函数值为1,故回归算法尽力将其预测值向1偏斜,因此在”正常的”数据域内产生了很大的偏差。

因此我们需要提出一种映射,使线性的预测函数无论返回多大的值,通过这种映射后其预测值都在$[0, 1]$内。因此我们发现了Logistic函数(对数几率函数):

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

如果将我们的线性预测函数$l_\Theta(X)$嵌套入上述函数中:

\[h(x) = g[l_\Theta(X)] = \frac{1}{1+e^{-\Theta X}}\]

其返回值即是”该输入被判断为正例的概率”。

代价函数:”对数似然”

极大似然法

由于最小二乘的代价函数是有大量局部极小的非凸函数,因此使用最小二乘-梯度下降优化方法难以得到最优化结果.(证明略)

例子

放回抽样抽100次球,观察到抽出白色30次,黑色70次,请问盒子里的球的比例最可能是?

假设白球占比是$\theta$,则单次抽出白球的概率是$\theta$,单次抽出黑球的概率是$(1-\theta)$,那么抽100次抽出30次白球、70次黑球的概率是$p([w=30,b=70],\theta)=\theta^{30}(1-\theta)^{70}$。我们称这个概率为后验概率,我们应当找到使这个概率最大的$\theta$取值,这种做法被称为极大似然估计。

对上述的二问题做极大似然估计的过程与摸球问题类似:

在训练集上,我们需要表示出事件:”根据模型参数$\Theta$将训练集中的属性全部预测对”的后验概率,而对于单个训练样例$(X_i, y_i)$,将其预测对的概率(我们的预测函数$h(X)$返回一个正例概率)是:

\[p_i((X_i,y_i),\Theta)=\left\{ \begin{matrix} h_\Theta(X_i),y_i = 1 \\ 1-h_\Theta(X_i),y_i = 0 \end{matrix} \right.\]

因此,上述”根据模型参数$\Theta$将训练集中的属性全部预测对”的后验概率可以写作:

\[P((X,Y),\Theta)=\Pi^{y=1}(h_\Theta(X_i))\Pi^{y=0}(1-h_\Theta(X_i))\]

对上述式子取对数,得到

\[log P(h_\theta(X), y,\Theta) = \sum T_\Theta(h_\theta(X_i), y_i) + \sum N_\Theta(h_\theta(X_i), y_i)\] \[T_\Theta(X_i) = y_i log(h_\Theta(X_i))\] \[N_\Theta(X_i) = (1 - y_i)log(1-h_\Theta(X_i))\]

代价函数

由上述原理,考虑使用一个新的代价函数来描绘单个训练用例在模型上产生的误差:

\[cost_i(h_\theta(X_i), y_i)=\left\{ \begin{matrix} -log(h_\Theta(X_i)),y_i = 1 \\ -log(1-h_\Theta(X_i)),y_i = 0 \end{matrix} \right.\]

但这是一个分段函数,难以在后续步骤中化简和求导。因此我们将其等价代换为如下的形式:

\[COST(h_\theta(X), y) = \sum T_\Theta(h_\theta(X_i), y_i) + \sum N_\Theta(h_\theta(X_i), y_i)\] \[T_\Theta(X_i) = -y_ilog(h_\Theta(X_i))\] \[N_\Theta(X_i) = -(1 - y_i)log(1-h_\Theta(X_i))\]

其中,函数T表示正例偏差,代表该例是正例时模型的预测结果(是一个概率)与训练集的偏差;函数N代表反例偏差,代表该例是反例时模型的预测结果与训练集的偏差。

梯度下降最优化

可以证明,上述的$COST$函数是一个凸函数,可以通过梯度下降最优化方法求出其最小值。

多分类问题:”一对余”方法

若一个分类问题中标记空间不仅有两个元素的话,这样的问题被称为多分类问题。

多($m$)分类问题的一个简单解法是:对于$m$种标记,分别训练$m$个标准分类器:在训练第$i$个分类器时,将$i$视为正例,其他标记视为反例。在训练完成后,面对泛化样例,第$i$个分类器所返回的就是这个样例被分为第$i$类的概率。因此,只需将样例输入每一个分类器中,取概率最大者为其预测标记即可。


Copyright AmachiInori 2017-2021. All Right Reserved.
Powered By Jekyll.
amachi.com.cn