Чи потрібна стратифікована вибірка (випадковий ліс, Python)?


14

Я використовую Python для запуску випадкової лісової моделі на моєму незбалансованому наборі даних (цільовою змінною був двійковий клас). Розбиваючи навчальний і тестуючий набір даних, я намагався використати стратифіковану вибірку (наприклад, показаний код) чи ні. Поки я в своєму проекті зауважував, що стратифікований випадок призведе до більш високої продуктивності моделі. Але я думаю, якщо я буду використовувати свою модель, щоб передбачити нові випадки, які б, напевно, відрізнялися в розподілі цільового класу з моїм поточним набором даних. Тому я схилявся послабити це обмеження і використати нестримований розкол. Хтось може порадити уточнити цей момент?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

Відповіді:


13

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

Тепер ваша модель буде здатна або принаймні достатньо обладнана, щоб передбачити перелічений клас (клас із меншою кількістю очок). Ось чому замість того, щоб просто обчислити Точність, вам дали інші показники, як-от Чутливість та Конкретність . Слідкуйте за цим, це опікуни.

Сподіваюсь, це допомагає.

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