简体   繁体   中英

Java Weka count number of appearances of distinct values of an attribute

I have an attribute (Using Weka!)

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

Now, for a given Instances data , I want to get the number of appearances of each Instance at attribute age . So if in data I have 50 instances with the attribute age 10-19 , 100 people with the attribute age 20-29 , and 150 people with the attribute age 30-39 , then I want to count it, and get something like:

age 10-19: 50
age 20-29: 100
age 30-39: 150
age 40-49: 0
age 50-59:0
...
age 90-99: 0

My first guess was just doing some naive approach to count each one of them using a hash map or something like that, but I think there is a better solution out there. Any help would be appreciated (even the naive approach). Thanks!

Found one solution.

for attribute as index i , by looping through the dataset and finding the attribute value index of an instance by instance.value(i) for attribute i .

Instances training = loadData("...");
int[] countAttributes = new int[training.attribute(i).numValues()];
for(Instance instance: training){
    countAttributes[(int)instance.value(i)]++;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM