Untitled
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