Як інтерпретувати середнє зниження точності та середнє зниження GINI у моделях випадкових лісів


34

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

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

Скажімо, у нас є така модель:

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

введіть тут опис зображення

У цій моделі рівень OOB досить низький (близько 5%). Тим не менше, середнє зниження точності для прогноктора (Petal.Length) з найвищим значенням у цій мірі становить лише близько 8.

Чи означає це, що вилучення Petal.Length з моделі призведе до лише додаткової помилкової класифікації в середньому за розмірами 8 спостережень?

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


спробуйте дат <- ірис [, c (2: 3,5)] і має отримати більш високі значення VI
Soren Havelund Welling

Відповіді:


26

" Це твердження про функцію в цілому або про конкретні значення в межах функції? "

  • "Глобальне" змінне значення - це середнє зниження точності для всіх перехресних перевірених прогнозів, коли дана змінна перестановлена ​​після тренування, але перед прогнозуванням. "Глобальний" неявний. Місцеве змінне значення - середнє зниження точності кожного окремого перехресного валідированного прогнозу. Важливість глобальної змінної є найпопулярнішою, оскільки вона є єдиним числом на змінну, простішою для розуміння та надійнішою, оскільки вона усереднюється за всіма прогнозами.

" У будь-якому випадку, чи означає середнє зменшення точності кількість або частку спостережень, які неправильно класифікуються, видаляючи відповідну характеристику (або значення з ознаки) з моделі? "

  1. поїзд ліс
  2. виміряти точність CV поза пакетом → OOB_acc_base
  3. змінної перестановки i
  4. виміряти точність CV в мішку → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- " Чи означає це, що вилучення Petal.Length з моделі призведе лише до додаткової помилкової класифікації в середньому за розмірами 8 спостережень? "

  • Так. І Petal.length, і Petal.width тільки мають майже ідеальне лінійне розділення. Таким чином, змінні діляться надлишковою інформацією, і переповнення лише однієї не перешкоджає моделі.

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

  • Коли надійна / регуляризована модель навчається на надмірних змінних, вона досить стійка до перестановок в одних змінних.

В основному використовуйте значення змінної в основному для ранжування корисності змінних. Чітке тлумачення абсолютних значень змінної важливості важко зробити добре.

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


Для інтерпретації змінного значення за рамками простого ранжування, перевірте: «вибір змінного Двовимірний для завдання класифікації» -Vivian У. Нг і Лео Брейман digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Сорен Havelund Welling

Дуже дякую за вашу відповідь! Я бачив, як деякі місця описують середнє зниження точності як збільшення рівня помилок OOB (тобто відсоток). Формула, яку ви опублікували, також, здається, говорить про помилку: (OOB_acc_perm_i - OOB_acc_base). Але ви впевнені, що середнє зменшення точності має на увазі кількість спостережень, неправильно класифікованих?
FlacoT

1
Запам’ятайте мінус попереду, оскільки змінна важливість - це зменшення. Я не надто специфічний з одиницями, вони можуть бути виражені у% або чисті співвідношення / пропорції, не має значення. Але так як точність = 1-помилка_рат, VI_і = помилка_рате_перм_і - помилка_база_бази. Для регресії значення одиниці змінної перестановки, як правило, зменшується на% поясненої дисперсії, а одиниця значення джині - це середнє зменшення середнього_виконання коефіцієнта помилки. "Але ви впевнені, що середнє зниження точності має на увазі кількість помилково класифікованих спостережень? " -Ні, точність - це частка, а не кількість.
Soren Havelund Welling

10

Ось опис середнього зниження точності (MDA) з довідника керівництва randomForest:

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

Згідно з описом, "точність" в MDA насправді відноситься до точності моделей одиночних дерев , незалежно від того, що ми більше стурбовані рівнем помилок лісу . Так,

"Чи означає це, що вилучення Petal.Length з моделі призведе лише до додаткової помилкової класифікації в середньому 8 або більше спостережень?"

  • По- перше, MDA (масштабування за умовчанням) , як визначено вище , більше схожий на тестовій статистики: The шкала не є ні відсотком, ні кількістю спостережень.

    Mean(Decreases in Accuracy of Trees)StandardDeviation(Decreases in Accuracy of Trees)
  • По-друге, навіть нерозміщений MDA, тобто , нічого не говорить про точність лісової моделі (дерева в цілому шляхом голосування).Mean(Decreases in Accuracy of Trees)

Підсумовуючи, висновок MDA за допомогою пакету randomForest не стосується ні коефіцієнта помилок, ні кількості помилок, але краще інтерпретується як тестова статистика на тесті гіпотези: відношенню до

H0:Nodes constructed by predictor i is useless in any single trees
H1:Nodes constructed by predictor i is useful

Як зауваження, процедура MDA, описана Сореном, відрізняється від реалізації пакету randomForest. Це ближче до того, чого ми прагнемо від MDA: зниження точності всієї лісової моделі. Однак модель, ймовірно, може бути встановлена ​​по-різному без Petal.Length і більше покладатися на інших прогнозів. Таким чином, MDA Сорена буде занадто песимістичним.


Два наступні питання: 1. Будь-яка ідея, якщо інші пакети використовують інтуїтивнішу MDA, описану @Soren? 2. Якщо інтерпретація MDA у RandomForest є тестовою статистикою, чи є щось на зразок принципового аналізу того, що достатньо велика статистика тесту - це відхилити H0? Чи дотримується MDA якийсь відомий розподіл?
FlacoT

1. Вибачте, я не пробував жодного іншого пакета. 2. Це просто схожа з тестовою статистикою. Ні розподіл не є доступним (наскільки я знаю, мало хто в це розглядав), а сам тест змістовний - я не вважаю, що тест нічого не робить висновку щодо ЛІСУ, що нас справді цікавить.
Jianyu

4

Нещодавнє (допис у блозі) [ https://explained.ai/rf-importance/index.html] від команди університету Сан-Франциско показує, що стратегії важливості за замовчуванням як у R (randomForest), так і в Python (scikit) є недостовірними. у багатьох сценаріях даних. Зокрема, середні показники зменшення значення домішок є упередженими, коли потенційні змінні прогнози змінюються в масштабі вимірювання або кількості категорій.

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

Домішка є упередженою, оскільки кожен раз, коли в змінній вибирається точка розриву, кожен рівень змінної тестується, щоб знайти найкращу точку розриву. Постійні або високі змінні показники кардинальності матимуть набагато більше точок розщеплення, що призводить до проблеми "багаторазового тестування". Тобто, існує більша ймовірність того, що випадково ця змінна трапиться добре передбачити результат, оскільки змінні, де пробується більше розщеплення, частіше з’являться на дереві.

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