值中的属性实例

Attribute instance in value

我正在观看一个私人讲座视频,其中讲师试图构建一个直方图分类器。我模仿了我的代码 returns 当我到达时出错:

mean += ins.value(attIndex:0);

他们提到 attIndex:0 是第一个属性,因此对于单个实例,您将其称为值 returns 存储在该特定实例的该属性中的值。

即便如此,当他们继续训练他们的数据时,他们也给出了这个代码:

double[] d = train.instance(index:0).toDoubleArray();

其中 train 是从 .arff 文件加载的数据。 index:0 似乎对他们有用,尽管对我来说,我从 Eclipse 中得到了常见的错误,询问一个字段,或者为什么有一个冒号。我猜这与函数 instance and for the other code value 有关。 所以里面给出了int index,不知道为什么,我看的这个人能够把index:0也包含进去。

知道为什么要包含它吗?如果我只是将 0 留在那儿,情况会怎样,或者这是否会破坏他们所做的评论:-“对于单个实例,您将值称为 returns 存储在中的值该特定实例的该属性。"

这是分类器的示例:

package TestLEarning;

import weka.classifiers.AbstractClassifier;
import weka.classifiers.Classifier;
import weka.core.Capabilities;
import weka.core.Instance;
import weka.core.Instances;

public class HistogramClassifier implements Classifier {
    double mean = 0;

    @Override
    public void buildClassifier(Instances data) throws Exception {
        double mean = 0;
        for (Instance ins : data) {
            mean += ins.value(attIndex: 0);
        }
        mean /= data.numInstances();
    }

    @Override
    public double classifyInstance(Instance arg0) throws Exception {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public double[] distributionForInstance(Instance arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Capabilities getCapabilities() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String toString() {
        return mean + "";
    }
}

在Java中你不能写ins.value(attIndex:0)。在 Visual Basic 中有一些这样的语法,但在 Java 中只写 ins.value(0)。正如之前有人提到的,这可能是 IDE 的提示。 (我之前在 IntelliJ 中看到过这个。)