【问题标题】:Get attributes weights/importance in SVM classification获取 SVM 分类中的属性权重/重要性
【发布时间】:2012-05-13 08:06:32
【问题描述】:

我正在尝试使用在 weka 库中实现的 SVM 分类对一些数据进行分类。我的分类代码如下:

BufferedReader reader = new BufferedReader(new FileReader(arffDataFile));

Instances data = new Instances(reader);
reader.close();

data.setClassIndex(0);

NumericToNominal filter = new NumericToNominal();

String[] options = new String[2];

options[0] = "-R";
options[1] = "1";

filter.setOptions(options);
filter.setInputFormat(data);

Instances newData = Filter.useFilter(data, filter);
newData.setClassIndex(0);

weka.classifiers.functions.LibSVM svm = new weka.classifiers.functions.LibSVM();
svm.buildClassifier(newData);

Evaluation eval = new Evaluation(newData);
eval.crossValidateModel(svm, newData, folds, new Random(1));

System.out.println(eval.toSummaryString("\nResults\n======\n", false));

System.out.println();

Arff 数据文件由 2973 个实例组成,每个实例有 27 个属性。

我的问题是,如何找出实例属性的权重。 我需要调查哪些属性在分类过程中最有用。

我是机器学习领域的初学者,所以简单的语言和示例代码将不胜感激。

提前感谢您的帮助。

【问题讨论】:

    标签: machine-learning weka


    【解决方案1】:

    Weka 具有从属性池中选择属性的选项。换句话说,它为您提供了对属性进行排名的方法。它们位于 weka.attributeSelection 中,您有很多选择来使用具有特定搜索方法的属性评估器。我个人对我的任务的偏好是使用 InfoGainAttributeEval 作为属性评估器以及 Ranker 作为搜索方法。这取决于您要使用哪种组合的任务。

    当您使用代码与 Weka 交互时,请参阅文档以使用 JAVA API 的属性评估器和搜索方法。就个人而言,我使用 GUI。

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 2012-03-16
      • 1970-01-01
      • 2012-06-19
      • 2012-12-23
      • 2016-05-12
      • 1970-01-01
      • 2013-04-05
      • 2015-06-04
      相关资源
      最近更新 更多