在SVM分类中获取属性权重/重要性

我正在尝试使用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个属性。

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

我在机器学习领域还是个初学者,所以希望能用简单的话语和示例代码来解释。

提前感谢任何帮助。


回答:

Weka提供了从属性池中选择属性的选项。换句话说,它为你提供了对属性进行排序的手段。这些功能位于weka.attributeSelection中,你可以选择多种属性评估器和特定的搜索方法来使用。我个人在我的任务中偏好使用InfoGainAttributeEval作为属性评估器,并结合Ranker作为搜索方法。具体使用哪种组合取决于你的任务需求。

请查阅文档,了解如何在使用JAVA API与Weka交互时使用属性评估器和搜索方法。我个人使用的是图形用户界面。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

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