应用特征选择和特征降维

我在尝试模拟一项包含机器学习的研究。在该研究中,研究者在使用高斯分类器进行分类之前,运用了特征选择和特征降维的方法。

我的问题如下:假设我有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试图最大化类别的可分性(通过最大化类间协方差与类内协方差的比率),并提供的特征数量等于类别数量减一。

但这里的重点是,在特征选择和降维之后,所有类别使用相同的特征集

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注