删除嘈杂和冗余功能

时间:2013-10-23 18:35:30

标签: algorithm machine-learning data-mining feature-extraction feature-selection

我从基于面部标记的视频序列中提取了特征,作为视频序列上这些标记的平均值和标准偏差。它们需要根据这些标记分为四类。

总而言之,我拥有大约260个功能的功能集。如何确定哪些功能在我的设备中有噪音和冗余。我在一些研究论文中读过它,其中一些使用了我认为非常合适的加l算法,但是在这样的算法中,他们总是将一个特征与另一个特征相比较,并说它的优劣。 如何评价我的功能是好还是坏?通常使用什么标准?

我研究了很多天,但没有发现任何明确和有用的东西。非常感谢帮助,谢谢。

3 个答案:

答案 0 :(得分:0)

将260个功能视为260维空间的基础。但是,您的基础向量彼此不正常,因此它们包含大量冗余信息。您希望将这些向量转换为向量集,其中所有向量彼此正常,从而最小化维度而不会丢失(多)信息。

这是Principal component analysis的作用。

Linear discriminant analysis也可能是你感兴趣的。

答案 1 :(得分:0)

您可以使用pca或者您可以训练一些分类器,然后循环遍历您的每个功能都会增加一个值,测试此更改是否会改变分类器的精度,如果没有,您可以删除此功能删除所有冗余功能后,再重新训练分类器!

它是一个很好的意识,不是训练一个分类器而是很多分类器,而且它们根据投票进行预测,你可以在matlab中使用MODE函数来做到这一点!

答案 2 :(得分:0)

使用分类率确定功能的子集有多好。你有260个功能,然后有2 ^ 260子集,这太多了!在这个空间搜索非常困难。因此,最好通过Filter方法删除某些功能(例如FA,t-test,fisher和...),然后使用搜索方法查找功能的最佳子集。 加上l算法(或其他搜索算法)找到各种子集并对其进行评级(在此阶段使用分类率),最后指定哪个子集更好。