本文将主要介绍两种经典分类模型,一种是Generative的,例如朴素贝叶斯(Naive Bayes),这种算法通过训练集估计样本总体分布的参数,从而得到每个样本在分布中产生的概率。另一种是Discriminative的,例如逻辑回归(Logistic Regression),和Generative的区别是,它不需要假设分布,也不需要估计分布的参数,而是对贝叶斯公式进行简化,直接对模型中相关的参数进行优化。
可能你现在还是晕晕的,没关系,现在假设你还没有接触过分类算法,遇到分类问题时首先会想到什么呢?一个可能的答案是线性回归。用一条线把样本分开,一边大于0,一边小于0,这样好像是可以的。来看看宝可梦的例子,任务是根据宝可梦的属性对其进行分类。先考虑简单的二分类,class1标记为1,class2标记为-1,测试集结果中接近1的就分到class1,接近-1的就分到class2。
来看看分类的结果,在左图中样本都聚集在分界线附近,分类的结果还不错。但在右图中出现了远离分界线的样本,分类的界线也受到了影响,分类结果出现了错误,这可以理解为是对那些“太正确”的例子的惩罚。好吧看来此路不通,再换一种思路看看。
接下来考虑Probabilistic Generative Model,直译就算概率生成模型。
贝叶斯公式了解一下!现在从下图中的两个箱子class中随机拿出一个球。P(C1)和P(C2)是先验概率,也就是假设你不知道球的颜色,随便拿一个球出来,它来自Calss1的概率P(C1)=5/(5+5)=0.5,来自class2的概率P(C2)=5/(5+5)=0.5。但是当你知道球的颜色的时候,你还会这么算吗,肯定不会了,因为这时要考虑在某个class中拿到某个颜色球的条件概率,例如P(x|C1),具体公式参见下图。
用后验概率来表示分类结果,需要知道先验概率P(C1)和P(C2),同时也需要知道P(x|C1)和P(x|C2)。前一个好解决,后一个需要用极大似然法进行参数估计。
在宝可梦的问题中,我们假设样本服从正态分布,每个class对应一个具体的正态分布。通过训练集估计出正态分布的参数后,就可以对新样本出现的概率进行计算。(这里用概率