Інтерпретація дерева рішень у контексті імпортних ознак


9

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

Рейтинг функцій: 1. FeatureA (0,300237)

  1. FeatureB (0,166800)

  2. FeatureC (0.092472)

  3. FeatureD (0,075009)

  4. FeatureE (0,068310)

  5. FeatureF (0,067118)

  6. FeatureG (0,066510)

  7. ОсобливістьH (0,043502)

  8. ОсобливістьI (0,040281)

  9. FeatureJ (0.039006)

  10. FeatureK (0,032618)

  11. ОсобливістьL (0,008136)

  12. FeatureM (0,000000)

Однак, коли я дивлюся на верхівку дерева, це виглядає приблизно так:Гілка дерева

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


1
скільки зразків присвоюється ліворуч та праворуч першого вузла?
oW_

Відповіді:


4

Не обов'язково, що чим важливішою є особливість, тим вище її вузол на дереві рішень.

Це просто тому, що різні критерії (наприклад, домішка Джині, посилення ентропійної інформації, MSE тощо) можуть використовуватися в кожному з цих двох випадків (розщеплення проти важливості).

Наприклад, SkLearnви можете вибрати розщеплення вузлів на дереві рішень відповідно до критерію посилення ентропії-інформації (див. criterion& 'entropy'At SkLearn), тоді як важливість особливостей надається значенням Джині, що є середнім зниженням Джині домішки для даної змінної у всіх дерев випадкового лісу (див feature_importances_в SkLearnі тут ).

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


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

3

У науці-науці особливою важливістю є зменшення домішок вузлів. Ключовим є те, що він вимірює важливість лише на рівні вузла. Потім всі вузли зважуються на кількість зразків, які досягають цього вузла.

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


2

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

Однак якщо ви могли вибрати лише один вузол, ви вибрали б J, оскільки це призведе до найкращих прогнозів. Але якби у вас була можливість мати багато вузлів для прийняття декількох різних рішень, A був би найкращим вибором.


Отже, з точки зору непростої людини, якщо припустити, що існує лише 2 можливі класифікації (назвемо їх 0 і 1), особливість в основі дерева буде тією, яка найкраще розбиває зразки на 2 групи (тобто найкраща робота розщеплення 1 на одній стороні дерева, а 0 на іншій). Це точно? Мені все ще не зовсім зрозуміло, за якою важливістю має бути рейтинг, якщо це не найкраще при розділенні 0 і 1 у цьому контексті
Тім Ліндсі

-2

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

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

Змінна важливість є кращим показником для варіативного вибору.


2
Я не думаю, що саме так це реалізується в scikit-learn. Там особливість важливості вимірюється як "важливість джині", тобто загальне зменшення домішки вузла, зважене на частку зразків, що досягають цього вузла.
oW_

"Важливість функції обчислюється як (нормалізоване) загальне зменшення критерію, приведеного цією ознакою. Він також відомий як важливість Джині". - scikit-learn.org/stable/modules/generated/…
Афлатус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.