/* * for both */ public static double calc_info_attr(CondClassDistribution instances_by_attr) { // Collection<Object> attributeValues = instances_by_attr.getAttributes(); double data_size = instances_by_attr.getTotal(); double sum = 0.0; if (data_size > 0) for (int attr_idx = 0; attr_idx < instances_by_attr.getNumCondClasses(); attr_idx++) { Object attr_category = instances_by_attr.getCondClass(attr_idx); double total_num_attr = instances_by_attr.getTotal_AttrCategory(attr_category); if (total_num_attr > 0) { double prob = total_num_attr / data_size; // flog.debug("{("+total_num_attr +"/"+data_size +":"+prob +")* ["); double info = calc_info(instances_by_attr.getDistributionOf(attr_category)); sum += prob * info; // flog.debug("]} "); } } // flog.debug("\n == "+sum); return sum; }