有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

机器学习Java Weka获取具有给定属性值的所有实例

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

@attribute age {10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89,90-99}

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

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

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


共 (2) 个答案

  1. # 1 楼答案

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

    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);
    
  2. # 2 楼答案

    找到了一个答案

    1. 找到所需属性值的index

    2. 循环遍历数据集并计算出现的次数

    代码:

    Instances training = loadData("...");
    for(Instance instance: training){
        counter += (int)instance.value(i) == index ? 1 : 0;
    }