Untitled

 avatar
unknown
plain_text
5 months ago
1.5 kB
2
Indexable
def count_samples_per_class(data):
    class_counts = [0] * 9  # Assuming 9 classes
    for sample in data:
        class_id = int(sample[-2])  # class label is the second-to-last element
        class_counts[class_id - 1] += 1  # class_id is assumed to be 1-indexed
    return class_counts

def find_max(classes):
    classes_count = count_samples_per_class(classes)
    max_class = max(classes_count)
    return max_class, classes_count

def minority(p, classes):
    n_maxclass, classes_count = find_max(classes)
    mean_samples = float(len(classes) / 9)
    alpha = mean_samples / n_maxclass
    rare_classes = []
    
    for index, each_class in enumerate(classes_count):
        if each_class < (n_maxclass * alpha):
            rare_classes.append(index)

    min_thresh = 1
    for each_class_index in rare_classes:
        for sample in classes:
            # Extract the class label and score from the tuple
            class_id = int(sample[-2]) - 1  # class labels are 1-indexed, so adjust by subtracting 1
            score = sample[-1]  # score is the last element
            
            if class_id != each_class_index:
                continue
            if score < min_thresh:
                min_thresh = score

    return max(min_thresh, p)

p=0.1 # co the thay doi 
minority_score = minority(p, fused_preds_dict)
print(f"Minority Score : {minority_score}")

new_results = []
for result in fused_preds_dict:
    print(result[-1]))
    if result[-1] >= minority_score:
        new_results.append(result)
results = new_results
Editor is loading...
Leave a Comment