Java Weka获取具有给定属性值的所有实例

Java Weka获取具有给定属性值的所有实例,java,machine-learning,attributes,weka,Java,Machine Learning,Attributes,Weka,我有一个属性(使用Weka!) 如何获取属性age中值为20-29的所有数据的实例对象 例如,我有大小为100的实例数据,其中只有10个,它们在属性age中的值是20-29,然后我想得到这10个实例的实例对象 我找不到一个方法来做这件事。任何帮助都将不胜感激。找到了一个答案 查找所需属性值的索引 循环遍历数据集并计算外观数 代码: 您也可以使用流和类型推断,尽管它看起来有点笨拙: int index = training.attribute("age").index(); String nomi

我有一个属性(使用Weka!)

如何获取属性
age
中值为
20-29
的所有数据的实例对象

例如,我有大小为100的
实例数据
,其中只有10个,它们在属性
age
中的值是
20-29
,然后我想得到这10个实例的实例对象

我找不到一个方法来做这件事。任何帮助都将不胜感激。

找到了一个答案

  • 查找所需属性值的
    索引

  • 循环遍历数据集并计算外观数

  • 代码:


    您也可以使用流和类型推断,尽管它看起来有点笨拙:

    int index = training.attribute("age").index();
    String nominalToFilter = "20-29";
    
    var filteredInstances = new Instances(training, 0); // Empty Instances with same header
    training.parallelStream()
            .filter(instance -> instance.stringValue(index).equals(nominalToFilter))
            .forEachOrdered(filteredInstances::add);
    
    Instances training = loadData("...");
    for(Instance instance: training){
        counter += (int)instance.value(i) == index ? 1 : 0;
    }
    
    int index = training.attribute("age").index();
    String nominalToFilter = "20-29";
    
    var filteredInstances = new Instances(training, 0); // Empty Instances with same header
    training.parallelStream()
            .filter(instance -> instance.stringValue(index).equals(nominalToFilter))
            .forEachOrdered(filteredInstances::add);