Weka中的分类解读

Posted

技术标签:

【中文标题】Weka中的分类解读【英文标题】:Interpretation of classification in Weka 【发布时间】:2012-12-13 23:26:05 【问题描述】:

我想用 Weka 来解决我的分类问题。 我有一组训练数据实例。假设数据看起来像:

@relation Relation1

@attribute att1 val11, val12
@attribute att2 val21, val22
@attribute class class1, class2, class3

@data
val11, val21, class1
val11, val22, class2
val12, val21, class3

在我的代码中,我从文件中读取了训练集。我训练 J48 树并尝试对实例进行分类。但是,我不知道如何解释分类结果。

我的代码如下:

try 
    DataSource source = new DataSource("trainingset.arff");
    Instances data = source.getDataSet();
    if (data.classIndex() == -1) 
        data.setClassIndex(data.numAttributes() - 1);
    

    Instance xyz = new Instance(data.numAttributes());
    xyz.setDataset(data);
    xyz.setValue(data.attribute(0), "val11");
    xyz.setValue(data.attribute(1), "val21");

    String[] options = new String[1];
    options[0] = "-U"; // unpruned tree
    J48 tree = new J48(); // new instance of tree
    tree.setOptions(options); // set the options
    tree.buildClassifier(data); // build classifier

    double[] distributionForInstance = tree.distributionForInstance(xyz);
    System.out.println(distributionForInstance[0]);
    System.out.println(distributionForInstance[1]);
    System.out.println(distributionForInstance[2]);

 catch (Exception e) 
    // TODO Auto-generated catch block
    e.printStackTrace();

作为我得到的输出:

0.3333333333333333
0.3333333333333333
0.3333333333333333

我还尝试了其他分类实例的方法:

double classifyInstance = tree.classifyInstance(xyz);
            System.out.println(classifyInstance);

在这种情况下,输出是:

0.0

您能解释一下我应该如何解释 distributionForInstance 和分类实例方法的输出吗? 我的目标是能够创建能够告诉我给定实例属于哪个类的分类器。

【问题讨论】:

您应该查看类似的post,其中提到了distributionForInstance 和classifyInstance。 【参考方案1】:

使用Attributevalue方法获取类标签:

double classifyInstance = tree.classifyInstance(xyz);
String classStr = data.classAttribute().value(classifyInstance);

【讨论】:

【参考方案2】:

看看javadoc。 distributionForInstance 方法返回一个具有类成员概率的数组(实例属于第一类的第一个元素概率等),classifyInstance 返回类(作为 ID ——考虑类标签数组的索引)。

【讨论】:

以上是关于Weka中的分类解读的主要内容,如果未能解决你的问题,请参考以下文章

测试人必看:五大维度解读软件测试分类

DDIM代码详细解读:分类器classifier的网络设计训练推理

图像分类算法:ResNet论文解读

解读分类报告

专业解读 | 什么是文本挖掘?

新能源汽车分类解读