Algorithm 1: Under Sampling |
1. Define class names class_names = [‘Grade 0’, ‘Grade 1’, ‘Grade 2, ‘Grade 3’, ‘Grade 4’] 2. Define image numbers for each class class_image_numbers = [7 ‘Grade 3’: 1441, ‘Grade 4’: 1987] 3. Calculate the average image numbers of the smaller three classes smallest_classes = [‘Grade 1’, ‘Grade 3’, ‘Grade 4’] Smaller classes image numbers = [class_image_numbers[class_names] for class_name in smaller_classes] average_image_numbers = int(np.mean(lower_classes_image_numbers)) 4. Random under sample the higher two classes to the average size Larger_classes = [‘Grade 0’, ‘Grade 2’] for class_name in larger_classes class_image_number = class_image_numbers[class_names] undersample_ratio = average_image_numbers/class_image_number undersampled_image_numbers = int(class_image_number × undersample_ratio) class_image_numbers[class_name] = undersampled_image_numbers |