簡體   English   中英

Java Weka獲取具有給定屬性值的所有實例

[英]Java Weka get all Instances with given attribute value

我有一個屬性(使用Weka!)

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

如何獲取實例age20-29的所有數據的Instances對象?

例如,我有大小為100的Instances data ,而其中只有10個,它們在屬性age的值是20-29 ,那么我想獲得這10個實例的Instances對象。

我找不到做這件事的血統方法。 任何幫助,將不勝感激。

您也可以使用流和類型推斷,盡管看起來有點笨拙:

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);

找到了一個答案。

  1. 查找所需屬性值的index

  2. 遍歷數據集並計數出現次數。

碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM