AI从零开始之分类器介绍

我们在之前的文章中讨论的都是一些回归的问题,本章我们来继续讨论一下分类相关的内容。

现在假设我们基于观察到的数据集{(x_{1}y_{1}), … , (x_{n},y_{n} )} 来进行评估f,当然这里的y_{1} ,…, y_{n}现在是一些定性的值。那么最常见的用来计算我们 \hat{f}的准确度的就是训练数据的误差率 (training error rate) ,他的公式如下:

\frac{1}{n}\sum_{i=1}^{n}I(y_{i}\neq \hat{y_{i}})

其中\hat{y_{i}}就是对于第i个观察数据应用 \hat{f}之后得到的类标签,I其实是一个指标变量(indicator variable), 当y_{i}\neq \hat{y_{i}}时, 就是1,当y_{i}= \hat{y_{i}} 时,它就是0。这样一看,我们就可以发现其实上面的公式就是计算的我们分类不正确的情况。

和回归的情况类似,上面的公式仍然只是计算的training data的误差率,而这并不是我们关注的,我们真正关注的其实是测试数据的误差率,所以假设我们有测试数据集( x_{0},y_{0}),那我们真正关注的就是:

Ave(I(y_{0}\neq \hat{y_{0}}))

其中\hat{y_{0}}就是 x_{0}的预测分类标签。很显然,我们总是希望我们的测试误差是最小的。

贝叶斯分类器(Bayes Classifier)

我们简单想想,就可以发现,若是想让我们的测试误差最小,我们只要把我们的测试值分到他最有可能的那个分类中就好了,用条件概率来讲就是我们只要把x_{0} 的预测值分类到j,使得

Pr (Y = j | X = x_{0})的值最大就好了。而这就是贝叶斯分类器。

现在假设我们的数据就只有两类结果:分类1(y=1)和分类2,那么根据贝叶斯分类的理论,假如Pr (Y = 1| X = x_{0}) > 0.5那么他其实就是分类1,剩下的就是分类2了。

下面我们来看一个简单的例子,如下图一所示:

 

图一 简单的二值分类图

我们的training数据有两种分类结果,在图中用橙色圈圈和蓝色圈圈来表示。现在我们假设我们已经知道了整个平面所有点的分类情况,背景是橙色点的表示它是橙色圈圈的概率大于50%,背景是蓝色点的表示它是蓝色圈圈的概率大于50%。紫色的这条虚线就是橙色圈圈和蓝色圈圈概率都正好是50%的线。这条线我们就称之为贝叶斯的决策边界。贝叶斯分类器的预测就是根据这个决策边界来的,在橙色这边的点,我们就会预测为橙色圈圈,在另外一边的我们就会预测为蓝色圈圈。

从图中我们可以看到,这样的预测大多数情况还是比较正确的,但是不可避免肯定是有误差的,我们可以看到图中蓝色点中的橙色圈圈,以及橙色点上的蓝色圈圈就都是一些误差的点,那么贝叶斯分类器的测试误差率是怎样的呢?

因为我们上面提到过其实贝叶斯找到的概率最大的值,那么对于测试点X= x_{0}来说,它的误差率就是1-max_{j}Pr(Y=j|X=x_{0}),所以总的贝叶斯误差率可以用下面这个公式来表示:

1-E(max_{j}Pr(Y=j|X))

K最近邻(KNN)分类

我们在上面介绍了贝叶斯分类,理论上我们当然希望用他来进行分类,但实际上我们很难知道一个点分类的真实条件概率,所以就出现了很多方法来预估这个条件概率,这里面比较基础的一个方法就是KNN,这也是我们这一节要讲解的内容。

KNN首先找我们测试点x_{0} 附近的K个点(K是正整数),我们把这个K个点的集合称之为N_{0} ,然后我们就可以用下面公式来估计条件概率了:

Pr(Y=j|X=x_{0})=\frac{1}{K}\sum_{i\epsilon N_{0}}I(y_{i}=j)

 

这样我们就可以根据K的值来计算出相应的条件概率了。

下面我们来看一个具体的例子,如下图二所示:

图二 KNN 例子

从图上可以看到,我们已经知道了一些training data,这里是12个点,其中橙色圈圈6个点,蓝色圈圈也是6个点,我们现在来预测黑色叉叉的情况。我们选择K=3,那么也就是看黑色叉叉周围三个点的情况,如图中绿色圆圈所示,我们可以看到,这个圆圈中有两个蓝色的圈圈,一个橙色的圈圈。所以,我们预估黑色叉叉是蓝色圈圈的概率就是2/3,是橙色圈圈的概率就是1/3。

我们对图中所有的点都用K=3来进行分类,就可以得到下图三所示的情况:

图三 KNN得到的决策边界

图三中黑色的线我们就称之为KNN决策边界。

KNN听起来很简单,但是如果我们使用一个合理的K,有时会得到一个和贝叶斯分类惊人类似的结果,我们使用K=10来决策图一中的数据,可以得到KNN的决策边界如图四所示:

图四 K=10的KNN决策边界和贝叶斯对比图

我们可以看大,这种情况下,其实KNN的决策边界和贝叶斯还是蛮相近的。当然我们也说了一个合适的K是非常重要的,下面我们来看假如我们把K选择为1或者100会是什么情况呢,如图五所示:

图四 K=10的KNN决策边界和贝叶斯对比图

我们可以看大,这种情况下,其实KNN的决策边界和贝叶斯还是蛮相近的。当然我们也说了一个合适的K是非常重要的,下面我们来看假如我们把K选择为1或者100会是什么情况呢,如图五所示:

图六 test error和training error与1/K之间的关系图

至此,本文已经把分类的基本情况解释清楚了,具体的我们后面的章节再详细深入介绍。

转载请注明出处:http://www.softlifelogging.com/2018/06/05/ai从零开始之分类器介绍/

更多精彩内容,敬请关注公众号: 随手记生活

No Comments

Leave a Reply

Your email address will not be published.