我正在Matlab中实现递归特征消除(RFE)算法,并且遇到以下算法问题:
使用RFE,我想绘制用于分类与分类精度的特征数量。现在说我有5个功能,我根据线性分类器赋予它们的权重对其进行排名(例如线性SVM)。哪种方法是正确的:
根据火车组k对特征进行排名,然后根据此特定排名,计算在{1,...,5}特征中使用n的准确性(因此,基于同一火车组的排名对准确性进行5次计算)
要么
根据训练集对要素进行排名,计算n个要素的准确性,根据下一个训练对再次对要素进行排名,现在计算前n + 1个要素的准确性
在我看来1是正确的,因为使用相同的火车集来计算1,...,5个特征的精度,这使其具有可比性-对吗?
最佳答案
特征可能对不同的数据集具有不同的影响。因此,由于您要比较某些功能,因此我建议您实施第一种方法,该方法使用相同的训练集。
但是,我不确定要绘制的图形是否有意义,以及是否与递归特征消除有关。如果要绘制特征数量与分类精度的关系图,则需要实现各种特征集并评估模型。例如,如果您具有3个特征f1
,f2
和f3
,则需要生成7个特征集;例如,
f1, f2, f3
f1, f2
f1, f3
f2, f3
f1
f2
f3