java - Weka - 如何在 Java 中使用分类器

标签 java machine-learning classification weka

我在 Weka Explorer 中创建了一个模型,并将其保存为 .model 文件

首先,我从 Java 代码加载保存的模型

Classifier cls = null;
    try {
        cls = (Classifier) weka.core.SerializationHelper.read("Model.model");
    } catch (Exception e1) {
        e1.printStackTrace();
    }

然后,我从 .arff 文件中读取要分类的实例

 BufferedReader reader = new BufferedReader(new FileReader(file));
 ArffReader arff = new ArffReader(reader);
 Instances data = arff.getData();

该文件仅包含一个实例。类属性的值为“?”。 通过下面的代码,我尝试对实例进行分类。

data.setClassIndex(data.numAttributes()-1);
            try {

                double value=cls.classifyInstance(data.firstInstance());

                String prediction=data.classAttribute().value((int)value); 

                System.out.println("The predicted value of instance "+
                                    Integer.toString(s1)+
                                    ": "+prediction); 
            } catch (Exception e) {
                e.printStackTrace();
            }

这是正确的方法吗?

最佳答案

这是一个正确的代码示例,可以完成您想要的操作。另一个有用的方法是:

yourClassifier.distributionForInstance(yourInstance);

返回一个 double[],其中包含每个类标签的实例概率。它对于不太明确的问题非常有用,在这些问题中,类成员资格可能是一个模糊的概念。

关于java - Weka - 如何在 Java 中使用分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31405503/

相关文章:

machine-learning - FastAI关于使用TextList加载数据的问题

machine-learning - 梯度下降随机更新 - 停止准则和更新规则 - 机器学习

matlab - matlab中的贝叶斯分类

machine-learning - Weka FilteredClassifier arrayOutOfBoundsException

java - 全局多标签性能评估的平均精度/召回率是否正确?

java - JENKINS REST API 抛出 403 禁止

java - 使用 Gradle 插件中的单独类路径执行 Java 类

java - 自动调整伸展树(Splay Tree)的旋转策略

java - Eclipse 编辑器允许接口(interface)中缺少 static 和 Final 关键字

python - 如何通过特征重要性来解释文本聚类结果? (DBSCAN)