我在尝试模拟一项包含机器学习的研究。在该研究中,研究者在使用高斯分类器进行分类之前,运用了特征选择和特征降维的方法。
我的问题如下:假设我有3个类别。我从总共10个特征中,为每个类别选择了(假设)前3个最佳特征。所选特征的例子如下:
Class 1: F1 F2 F9Class 2: F3 F4 F9Class 3: F1 F5 F10
由于主成分分析或线性判别分析都需要在完整的数据集上进行,或者至少在所有类别具有相同特征的数据集上进行,那么我该如何对这样的数据集进行特征降维,然后进行训练呢?
论文的链接如下:依赖说话者的音视频情感识别
以下是论文中的摘录:
使用Bhattacharyya距离作为标准函数,通过Plus l-Take Away r算法选择了前40个视觉特征。然后对所选特征集应用了PCA和LDA,最后使用单成分高斯分类器进行分类。
回答:
在链接的论文中,为所有类别开发了一组特征。Bhattacharyya距离是一种衡量两个高斯分布可分性的有界距离度量。文章似乎没有具体描述如何使用Bhattacharyya距离(是类间距离矩阵的平均值吗?)。但是一旦你有了基于Bhattacharyya的度量,你可以选择特征的几种方法。你可以从一个空的特征集开始,逐步添加特征到集合中(基于新特征的类别可分性)。或者你可以从所有特征开始,逐步丢弃提供最少可分性的特征。Plus l-Take Away r算法结合了这两种方法。
一旦选择了原始特征的子集,特征降维步骤通过对原始特征的某种变换来降低维度。正如你所引用的,作者使用了PCA和LDA。这两者之间的重要区别在于,PCA独立于训练类别标签,要降低维度,你必须选择保留多少方差。而LDA试图最大化类别的可分性(通过最大化类间协方差与类内协方差的比率),并提供的特征数量等于类别数量减一。
但这里的重点是,在特征选择和降维之后,所有类别使用相同的特征集。