Методи Зменшення Вибірки
Свайпніть щоб показати меню
Під час роботи з великими наборами даних, які є незбалансованими, часто виникають ситуації, коли один клас (мажоритарний клас) значно переважає інший (міноритарний клас). Такий дисбаланс ускладнює для моделей навчання виявлення значущих закономірностей щодо міноритарного класу, що призводить до низької якості прогнозування. Андерсемплінг — це техніка, яка використовується для вирішення цієї проблеми шляхом зменшення кількості зразків у мажоритарному класі, щоб зробити набір даних більш збалансованим.
Андерсемплінг варто розглядати, коли ваш набір даних занадто великий для практичної обробки або коли мажоритарний клас настільки домінує, що модель ігнорує міноритарний клас. Однак андерсемплінг найбільш доцільний, якщо у вас дуже великий набір даних і ви можете дозволити собі втратити частину зразків мажоритарного класу без втрати важливої інформації. Менш доцільно застосовувати цю техніку, якщо набір даних вже невеликий або мажоритарний клас містить рідкісні, але важливі приклади.
123456789101112131415161718192021222324import pandas as pd # Create a sample imbalanced dataset data = { "feature": range(20), "class": ["majority"] * 16 + ["minority"] * 4 } df = pd.DataFrame(data) # Count the number of samples in each class class_counts = df["class"].value_counts() minority_count = class_counts["minority"] # Randomly sample from the majority class to match the minority class count majority_sample = df[df["class"] == "majority"].sample(n=minority_count, random_state=42) minority_sample = df[df["class"] == "minority"] # Combine samples to get a balanced dataset balanced_df = pd.concat([majority_sample, minority_sample]) print("Original class distribution:") print(df["class"].value_counts()) print("\nBalanced class distribution after undersampling:") print(balanced_df["class"].value_counts())
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат