在Matlab中实现递归特征消除

时间:2017-12-07 13:20:08

标签: matlab machine-learning classification

我正在Matlab中实现递归特征消除(RFE)算法,并且有以下算法问题:

使用RFE,我想绘制用于分类和分类准确性的特征数量。现在说我有5个特征,我根据线性分类器给出的权重(例如线性SVM)对它们进行排序。哪种方法是正确的:

  1. 根据列车集k对特征进行排名,并根据此特定排名计算在{1,...,5}特征中使用n的准确性(因此,根据相同的排名计算准确度的5个火车集)
    1. 根据列车设置对要素进行排名,计算n个要素的准确度,根据下一个列车集再次对要素进行排名,现在计算要素顶部n + 1要素的准确度
    2. 在我看来1是正确的,因为相同的火车组用于计算1,......,5个特征的准确度,使其具有一定的可比性 - 我是对的吗?

1 个答案:

答案 0 :(得分:1)

功能可能会对不同的数据集产生不同的影响。因此,我建议您实现第一种使用相同训练集的方法,因为您要比较某些功能。

但是,我不确定您想要绘制的图形是否有意义,以及它是否与递归特征消除有关。如果要绘制要素数量与分类准确度,则需要实现各种要素集并评估模型。例如,如果您有3个功能f1f2f3,那么您需要生成7个功能集;

f1, f2, f3
f1, f2
f1, f3
f2, f3
f1
f2
f3