元过滤分类器和手动过滤分类器给出不同的结果

我使用两种方法得到了矛盾的结果,而在我看来这两种方法应该产生相同的结果。能否有人指出其中的差异,因为我实在是搞不明白 :S

我正在处理Drexel_Stats.arff文件。我使用了1-NN分类器并进行了10折交叉验证。在没有任何预处理的情况下,我得到了以下混淆矩阵:

  a  b   <-- classified as 14  3 |  a = Win  5  1 |  b = Loss

为了获得更好的结果,我使用了:

 weka.attributeSelection.InfoGainAttributeEval weka.attributeSelection.Ranker -T -1.0 -N 5

来获取数据集中最具区分性的5个特征。然后我手动删除了所有其他特征,并重新运行了我的1-NN分类器,得到的结果如下:

  a  b   <-- classified as 16  1 |  a = Win  1  5 |  b = Loss

现在事情变得令人困惑了(至少对我来说是这样)。我尝试使用元过滤分类器来避免手动删除特征的麻烦。这是我的使用方法(从GUI中复制):

 weka.classifiers.meta.FilteredClassifier-F "weka.filters.supervised.attribute.AttributeSelection-E \"weka.attributeSelection.InfoGainAttributeEval \"-S \"weka.attributeSelection.Ranker -T -1.0 -N 5\""-W weka.classifiers.lazy.IB1 -D

我理解这是对之前操作的自动化,但实际上这次得到的结果却不同:

  a  b   <-- classified as 15  2 |  a = Win  4  2 |  b = Loss

我哪里做错了?

谢谢

编辑: 这是WEKA输出的部分内容:

    === Attribute Selection on all input data ===Search Method:    Attribute ranking.Attribute Evaluator (supervised, Class (nominal): 39 Outcome):    Information Gain Ranking FilterRanked attributes: 0.828    1 Opponent 0.469   38 Opp_Steals 0.42    24 Opp_Field_Goal_Pct 0.331   15 Def_Rebounds 0.306   28 Opp_Free_Throws_MadeSelected attributes: 1,38,24,15,28 : 5Header of reduced data:@relation 'Basketball_Statistics-weka.filters.unsupervised.attribute.Remove-V-R1,38,24,15,28,39'@attribute Opponent {Florida_Gulf_Coast,Vermont,Penn,Rider,Toledo,Saint_Joseph,Fairleigh_Dickinson,Villanova,Syracuse,Temple,George_Mason,Georgia_State,UNC_Wilmington,James_Madison,Hofstra,Old_Dominion,Northeastern,Delaware,VCU,Towson}@attribute Opp_Steals numeric@attribute Opp_Field_Goal_Pct numeric@attribute Def_Rebounds numeric@attribute Opp_Free_Throws_Made numeric@attribute Outcome {Win,Loss}@data

这些特征在交叉验证的每一折中都是相同的吗?根据实例的分割,选择的特征可能会不同吗?


回答:

你第一次(全局)的特征选择使用了所有数据点,包括所有标签,即它可以访问在交叉验证期间你无法访问的类信息。因此,你的第一种方法是有缺陷的,导致错误估计过好。你的第二种方法是正确的。它表现得较差,因为在十次运行的交叉验证中,它很可能不会为每次选择相同的五个特征。希望对你有帮助 Bernhard

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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