分类问题就是根据输入的信息确定qi其所属的类别,比如医疗诊断、手写字体识别、人脸识别。
那怎么做分类问题呢?
第一种方案将分类问题按照回归问题处理,以二分类为例,类别1的目标就是1,类别2的目标就是-1.越接近1就是属于类别1,越接近-1就属于类别2。但是当按照回归问题处理时会存在一些问题导致分类准确率降低。如下图所示。
如上图所示,左图中,分界回归线将数据很好地分类,但是在右图中,当类别地数据增加并且是增加了右下角的样本时,回归问题为了降低误差,分解回归线就会想右下便宜,从而分类回归线从绿色变成了紫色,但是其实在这种情况下分类准确率反而降低。明显分类问题的这种处理方式是不可行的,所以那么就有了一种很理想的处理方式,如下图所示。
但是我们可以看到这种方式是不可导的,所以无法使用这种求解方式。考虑利用训练集得到每个样本所属类别的概率,从而确定出最终的样本所属的类别标签。仍然以二分类问题为例,如下图所示:
我们计算x属于类别C1的概率,如果概率值大于0.5,则x属于类别C1否则x属于类别C2。
但是现在有个问题,怎么计算,如下图所示
我们考虑每个样本有两个属性,变成如下图具体问题:
我们考虑训练集中的样本服从高斯分布,高斯分布的分布由均值和方差决定,高斯分布的表达式以及在不同均值和方差的形状如下所示:
那接下来为了计算新样本的概率,我们需要找到训练集背后的那个高斯分布,即确定高斯分布的均值和方差,如下图所示:
那上图中的均值和方差如何确定呢?考虑最大的相似性,当存在一组均值和方差时,我们就可以得到在该组均值和方差下每个训练集样本的概率,这些概率的乘积即为相似性,不同的均值和方差对应不同的相似性,我们需要找到极大相似性,这时候对应的均值和方差才更能反应产生这组训练集的高斯分布。如下图所示:
注意这里的L函数时Likehood的缩写,不是Loss的缩写。
利用上面的方法可以求得训练集中两个类别下的样本的均值和方差
接下来我们进行分类:
但是在测试集中的效果很不好,即使我们使用了7个特征,如下图所示:
所以我们需要修改模型,我们对两个类别下的样本使用相同的方差(自己觉得如果每个类别计算自己的方差可能导致过拟合),如下图所示:
我们只定义一个相似性函数,一次性计算出均值和方差,如下图所示:
使用这种计算方式,效果明显提高,如下图所示:
所以,针对分类问题,我们分为三步解决(其实计算相似性函数就是利用极大似然估计,极大似然估计就是已经样本以及样本所对应的分布,计算该分布的参数):
根据后验概率得到sigmoid函数
对于上图中z具体的表达式如下图所示:
上面公式推到中需要注意Cov(X,Y)=Cov(Y,X)。