我有一个属性(使用 Weka!)
@attribute age {10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89,90-99}
现在,对于给定的 Instances data
,我想获取属性 age
中每个 Instance
的出现次数。因此,如果在 data
中有 50 个实例的属性为 age 10-19
,100 个人的属性为 age 20-29
,以及 150 个人的属性为 age 30-39
,那么我想统计这些数据,并得到类似以下的结果:
age 10-19: 50age 20-29: 100age 30-39: 150age 40-49: 0age 50-59:0...age 90-99: 0
我的初步想法是使用某种简单的方法,比如使用哈希映射来统计每个值的出现次数,但我认为可能有更好的解决方案。任何帮助都将不胜感激(即使是简单的方法)。谢谢!
回答:
找到了一种解决方案。
对于作为索引的属性 i
,通过遍历数据集并使用 instance.value(i)
查找属性 i
的实例属性值索引。
Instances training = loadData("...");int[] countAttributes = new int[training.attribute(i).numValues()];for(Instance instance: training){ countAttributes[(int)instance.value(i)]++;}