分类概述 classification
实际应用包括 金融的信用评级(credit scoring)、医疗诊断(medical diagnosis)、手写文字辨识(handwritten character recognition)、人脸辨识(face recognition)
首先,需要收集训练数据(training data for classification)。这里可以讨论一下分类和回归的关系,以二分类为例,可以通过回归模型进行训练,查看比较测试数据输出更加接近哪一类,则将其归为那一类。
这么做会出现两种明显的误差。
第一,如下图所示,可以看出,regression的目标是将整体的回归误差降到最低,则对于一些异常点(右下角),regression的曲线会受到影响,出现错误的边界。
第二,如果将回归应用到多分类问题,则隐含了一个假设,即相邻两类存在更相近的关系。
更加合理的选择如下图所示,将Model定义为一个输出条件函数,而Loss function则定义为如果输出错误,则整体误差加1,否则不增加误差;最后需要求解的也是一个最优化问题,这与回归问题类似,但是显然二者的解法不一致。
The number of times f f get incorrect results on training data.
生成模型(Generative model)
生成模型,可以计算某些特征出现的概率,这需要运用全概率公式实现。具体的计算需要包括 每一类的概率,这是第一步;
然后,对于每一个输入,可以采用一组特征来描述,计算前述每一类别的每个特征的出现概率,即计算
P(x1|C1),P(x2|C1),..,P(x1|C2),P(x2|C2),...,P(xM|CN),P(xM|CN)
P
(
x
1
|
C
1
)
,
P
(
x
2
|
C
1
)
,
.
.
,
P
(
x
1
|
C
2
)
,
P
(
x
2
|
C
2
)
,
.
.
.
,
P
(
x
M
|
C
N
)
,
P
(
x
M
|
C
N
)
的概率。这涉及到朴素贝叶斯的概念,更多的是由于给定的训练数据中不包含所有的情况。因此对于未出现的数据,其概率不一定是0,需要采用其他方法才能给出具体的概率估算值。
除了朴素贝叶斯分布的家涉外,这里假设给定的训练数据符合高斯分布,需要的参数有均值矩阵和协方差矩阵。 对于高斯分布而言,训练数据都能由任意的高斯分布得到,这里需要求取最大的概率,即maximum likelihood。由于训练数据间的关系较弱,因此总的高斯分布概率应该为每一个点的高斯分布概率的乘积。因此,可以从训练数据中获得均值向量和协方差矩阵。如下图所示。以上就给出了如何计算每一类别的各个输入出现的概率。 具体做法是对于每一类别,去除特征数据,进行高斯分布拟合计算,则得到不同类别的概率。
Pokemon分类问题
采用 Defense 和 SP Defense两个特征,可以得到如下图所示的结果,可以发现识别率很差。即使采用全部特征也发现分类的识别率依然很差。
如何解决上述问题
对于概率生成模型,上述方法采用对于每一个类别采用一组均值和协方差,对于分类问题而言这并不常见。更加通用的方法是,对于不同的类别,可以采用同一个协方差矩阵。对于不共享的协方差矩阵,整个模型的参数有很多,因此整体的variance就很大,容易overfitting。共用协方差矩阵的公式为给出类别概率的加权平均:
总结
概率生成模型,利用给出的训练数据集的数据关系,采用bayes公式进行概率生成(后验概率),分别有不同类别的概率,以及每一类别情况下,各个特征的概率情况(高斯分布、独立高斯分布或者朴素bayes)。
给出了Logistic regression(二分类)与此处的posterior probability的关系,如下所示。对于二分类,当每个类别中的特征符合高斯分布,则z具有特殊的含义。另外,当协方差矩阵共用,最终可以得到z为一个线性模型,这就是logistic regression的概念。 因此,对于二分类,可以直接利用拟合得到Logistic regression中的w和b。