【问题标题】:Weka features selection (InfoGainAttributeEval, ChiSquaredAttributeEval)Weka 特征选择 (InfoGainAttributeEval, ChiSquaredAttributeEval)
【发布时间】:2014-02-03 15:11:36
【问题描述】:

我是 Weka 的新手,我有 2 类数据要分类。我可以使用权重(单词出现、TFIDF 或单词存在)对其进行分类。我想使用 Weka 中集成的特征选择机制来提高分类器的准确性,如下所示:

                BufferedReader trainReader = new BufferedReader(new FileReader(dataSource)); 
               trainInsts = new Instances(trainReader); 
               trainInsts.setClassIndex(trainInsts.numAttributes() - 1); 


// I am using the filter to convert the data from string to numeric 

                  StringToWordVector STWfilter = new StringToWordVector(); 
                  FilteredClassifier model = new FilteredClassifier(); 
                  model.setFilter(STWfilter); 
                  STWfilter.setOutputWordCounts(true); 


int n = 400; // number of features to select 
      AttributeSelection attributeSelection = new  AttributeSelection(); 
     ranker = new Ranker(); 
     ranker.setNumToSelect(n); 

       infoGainAttributeEval = new InfoGainAttributeEval(); 
       attributeSelection.setEvaluator(infoGainAttributeEval); 
attributeSelection.setSearch(ranker); 

     attributeSelection.setInputFormat(trainInsts); 
     trainInsts = Filter.useFilter(trainInsts, attributeSelection); 

 Evaluation eval = new Evaluation(trainInsts); 

        eval.crossValidateModel(model, trainInsts, folds, new Random(1)); 

这很有效,我可以看到使用标准加权方法(例如(单词出现))略有改进。我不确定我所做的是否正确。因为我觉得特征选择方法和加权方法是一样的。我还必须给出我应该拥有的“n”个功能吗?这会显着影响分类器的结果,如何设置,例如当我有 3000 个实例时,我应该选择多少个特征? Weka 中还有什么方法可以获取我的数据中的特征(单词)数量吗?例如,对于 2000 个实例,最佳准确度是 n=400 。

有没有cmets?

提前致谢

【问题讨论】:

    标签: weka


    【解决方案1】:

    一一回答你的问题:

    1. "因为我觉得特征选择方法和加权方法是一样的。" 嗯,它们有很大的不同。首先,权重没有监督,没有考虑类信息;而特征选择是有监督的,旨在根据衡量特征和类别之间“耦合”的质量指标选择最具预测性的特征(单词)。其次,大多数特征选择指标(例如信息增益)不考虑权重,只考虑出现次数 - 它们显示 TFxIDF 或二元特征的相同结果(分数)。
    2. 我还必须给出我应该拥有的“n”个特征吗?” 在 WEKA 中,您可以设置一个特征必须在质量指标中获得的最低分数的阈值。独立于实例数量的通用值是0.0。这意味着所有得分超过0.0 的特征都将被保留,因为它们至少提供了一些预测信息。在信息增益的情况下,您可以将该分数提高到1.0;阈值越高,您将保留的特征越少。此外,在文本分类文献中使用的经验法则(参见例如Yang & Pedersen paper)保留了大约 1-10% 的特征。在 Information Retrieval 中,Salton 表示那些文档频率为文档数量的 1% 到 10% 的词条更具判别力(但 Information Retrieval 是关于搜索的,没有监督)。

    所以,总结一下:你做得对——继续进行属性选择,但为简单起见,将 0.0 作为信息增益的最小阈值。

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 1970-01-01
      • 2023-03-11
      • 2020-10-24
      • 2013-02-21
      • 2017-04-06
      • 2013-04-26
      相关资源
      最近更新 更多