Чи варто шукати набір даних "збалансований" або "представник"?


48

Моє завдання «машинного навчання» - відокремити доброякісний Інтернет-трафік від шкідливого трафіку. У реальному сценарії більшість (скажімо, 90% або більше) Інтернет-трафіку є доброякісними. Таким чином, я відчув, що мені слід вибрати подібний параметр даних і для навчання моїх моделей. Але я натрапив на дослідницький документ або два (в моєму районі роботи), які застосовували підхід до даних "навчання врівноваження" для навчання моделей, маючи на увазі рівну кількість випадків доброякісного та зловмисного трафіку.

Взагалі, якщо я будую моделі машинного навчання, чи слід шукати набір даних, який є репрезентативним для реальної проблеми світу, або збалансований набір даних краще підходить для побудови моделей (оскільки деякі класифікатори не добре поводяться з дисбалансом класів, або через інші невідомі мені причини)?

Чи може хтось пролити більше світла на плюси і мінуси обох варіантів і як вирішити, який саме вибрати?

Відповіді:


38

Я б сказав, що відповідь залежить від вашого випадку використання. На основі мого досвіду:

  • Якщо ви намагаєтеся створити репрезентативну модель - таку, яка описує дані, а не обов'язково прогнозує - тоді я б запропонував використовувати репрезентативний зразок ваших даних.
  • Якщо ви хочете побудувати модель прогнозування, особливо ту, яка добре працює за мірою AUC або ранговим порядком і плануєте використовувати базову рамку ML (наприклад, Дерево рішень, SVM, Naive Bayes тощо), то я б запропонував вам подати створити збалансований набір даних. Значна частина літератури з приводу дисбалансу класів виявляє, що випадкове пониження (зменшення вибірки класу більшості до розміру класу меншості) може призвести до підвищення продуктивності.
  • Якщо ви будуєте модель прогнозування, але використовуєте більш вдосконалений фреймворк (тобто щось, що визначає параметри вибірки за допомогою обгортки або модифікацію рамки для мішковування, яка відбирає до еквівалентності класу), я б запропонував знову подати репрезентативний зразок і випустити алгоритм піклується про врівноваження даних для навчання.

2
Якщо ви намагаєтеся створити репрезентативну модель - ту, яка описує дані, а не обов'язково прогнозує ... хто будує модель, яка не передбачає ?? Не потрапили ви туди ...
pnp

8
Навчання без нагляду може бути прикладом, коли ви будуєте модель, яка не обов'язково спрямована на прогнозування. У деяких випадках ви можете вивчити або узагальнити свої дані.
DSea

1
Я б сказав, що безпечніше врівноважувати зразок, а також збирати відбір ваг, щоб згодом ви могли переоцінити ваші дані для репрезентативності, якщо вам потрібно. @pnp багато соціологів будують непередбачувані моделі, наприклад для підтвердження теорій.
shadowtalker

Як збалансована модель може порівнюватися з репрезентативною моделлю, використовуючи зважені спостереження, щоб імітувати збалансовану модель?
JenSCDC

1
На AUC не впливає дисбаланс класів, оскільки це ймовірність того, що ваша модель класифікує випадково вибраний позитивний клас вище, ніж випадково обраний негативний клас. Я зовсім не згоден з вашими порадами тут для загальних цілей. Якщо у вас є представницький зразок, наприклад, простий випадковий зразок, його слід залишити репрезентативним.
Меттью Друрі

8

Я думаю, це завжди залежить від сценарію. Використання репрезентативного набору даних не завжди є рішенням. Припустимо, що у вашому навчальному наборі є 1000 негативних прикладів та 20 позитивних прикладів. Без будь-яких модифікацій класифікатора ваш алгоритм буде схильний класифікувати всі нові приклади як негативні. У деяких сценаріях це нормально, але в багатьох випадках витрати на відсутні приклади пришвидшені, тому вам доведеться знайти рішення.

У таких випадках можна використовувати алгоритм машинного навчання з урахуванням витрат. Наприклад, у випадку аналізу даних медичної діагностики.

Підсумовуючи: помилки класифікації не мають однакової вартості!


7

Завжди є рішення спробувати обидва підходи та зберегти той, який максимізує очікувані виступи.

У вашому випадку я б припустив, що ви віддаєте перевагу мінімізації помилкових негативів ціною деякого помилкового позитиву, тому ви хочете змістити свій класифікатор проти сильного негативного попереднього і вирішити цей дисбаланс, зменшивши кількість негативних прикладів у вашому навчальному наборі.

Потім обчисліть точність / виклик, або чутливість / специфіку, або будь-який критерій, який підходить вам для повного, незбалансованого набору даних, щоб переконатися, що ви не проігнорували значну модель, наявну в реальних даних, будуючи модель на зменшених даних.


4

Розділіть оперативний та навчальний сценарії.

Операційний сценарій - це той, за яким буде вимірюватися ваш класифікатор. Тут ви повинні добре працювати. У використанні має бути набір даних, що є репрезентативним для цього сценарію.

Сценарій навчання - це все, що ви робите, щоб створити класифікатор, який буде добре працювати за сценарієм роботи.

Багато разів набори даних в обох сценаріях мають однаковий характер, тому немає необхідності розрізняти їх. Наприклад, у вас є інтернет-магазин, який ви використовуєте для тренінгу минулого використання, щоб успішно працювати в майбутньому. Однак під час навчання ви можете використовувати інший набір даних, ніж той, який представляє операційний сценарій. Насправді, якщо ви спите, мрієте про класифікатор, затверджуєте його за своїм операційним сценарієм (цей крок слід зробити після пробудження), ви настільки ж хороші, як після проходження звичного шляху машинного навчання.

Відмінність між операційними та навчальними сценаріями стає важливою при незбалансованості набору даних. Більшість алгоритмів не працюватимуть на такому наборі даних.

Отже, не соромтеся використовувати два набори даних - Ви можете використовувати збалансований набір даних для тренінгу. Після завершення перевірити свій класифікатор операційного набору даних.


3

Я думаю, що слід розглянути два окремі питання: час тренувань та точність прогнозування.

Візьмемо простий приклад: вважаємо, що у вас є два класи, які мають багатоваріантний нормальний розподіл. В основному, вам потрібно оцінити відповідні засоби класу та класні коваріації. Тепер перше, що вас хвилює, - це оцінка вашої різниці в класі: але ваша продуктивність обмежена точністю найгіршого оцінюваного середнього: не добре оцінювати одне середнє значення до 100-го десяткового знаку - якщо інше значення лише оцінюється до 1 десяткового знака. Тож марно використовувати обчислювальні ресурси для використання всіх даних - замість цього можна підкреслити більш поширений клас І належним чином змінити вагу класів. (ці обчислювальні ресурси потім можна використовувати для дослідження різних вхідних змінних тощо)

Тепер другим питанням є точність прогнозування: різні алгоритми використовують різні метрики помилок, які можуть або не можуть погодитися з вашими власними цілями. Наприклад, логістична регресія призведе до покарання загальної помилки ймовірності, тому, якщо більшість ваших даних походить з одного класу, то вона, як правило, намагатиметься вдосконалити точні оцінки ймовірностей (наприклад, 90 - 95% ймовірності) цього класу, а не намагатися ідентифікувати рідкісний клас. У такому випадку ви, безумовно, хочете спробувати зменшити вагу, щоб підкреслити рідкісний клас (а згодом скорегувати оцінку [коригуючи термін зміщення], щоб визначити оцінку ймовірності)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.