Чи є спосіб пояснити передбачення з випадкової лісової моделі?


11

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

Але було б корисно / здорово мати можливість вивести щось на зразок графіка змінної важливості, але для конкретного предмета, який прогнозується, а не для навчального набору. Щось на зразок:

Елемент X прогнозується як собака (вірогідність 73%)
Тому що:
ноги = 4
дихання = погано
хутро = коротка
їжа = противно

Ви отримуєте бал. Чи існує стандартний або принаймні виправданий спосіб отримання цієї інформації з навченого випадкового лісу? Якщо так, чи є у когось код, який зробить це для пакету randomForest?


Певна складність ... Можна уявити підрахунок кількості разів, коли змінна Legs була частиною шляху прийняття рішення. Але ви би просто зробили це для дерев, які передбачили відповідь більшості, чи всі вони? Або різниця?
Харлан

І міняти всіх передбачувачів mодин за одним і дивитись, як ліс прогнозує по-різному, здається, сорти дорогі. Треба бути кращим способом.
Харлан

моя перша думка полягала в тому, щоб замислитися, чим те, що ви хочете зробити, відрізняється від змінної важливості даних тренувань? Ви хочете сказати, що враховуючи інші значення, якими вони були, яка була чутливість прогнозу на ноги = 4 проти ніг = 2 або ноги = 0? Ви подивилися на функцію часткового сюжету в пакеті випадкових лісів?
B_Miner

Змінна важливість зазвичай визначається умовною для всього навчального набору (або передбачуваної сукупності, або чогось іншого). Але те, що я хочу, - це змінна важливість для одного передбаченого пункту. Уявіть випадок, коли ліс складається з дуже обмежених дерев рішень. Тестовий екземпляр 1 може бути пояснений 1 або дуже мало вузлів рішення, тоді як тестовий екземпляр 2 може бути пояснений значно більшим набором вузлів рішення. Я хочу дуже простої для людини версії, що є інтерпретацією, подібно до ранжированого набору рішень, топ-5 яких я можу надати. Для одного дерева рішень я б просто їх зачитав.
Харлан

Відповіді:


3

Перша ідея полягає лише в тому, щоб імітувати стратегію вибивання із змінної важливості та просто перевірити, як змішування кожного атрибуту породжує довіру лісу до класифікації об’єктів (на OOB та з певними повторами очевидно). Це вимагає певного кодування, але це, безумовно, досяжне.

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

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


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

0

Я б спробував з вапняним каркасом.

Він працює з багатьма моделями (включаючи випадкові ліси). Його можна використовувати для локальної інтерпретації (тобто пояснення єдиного передбачення) або для глобальної інтерпретації (тобто пояснення цілої моделі).

Цитуючи з асбекта

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

У ньому є пакети як для R, так і для python , і багато прикладів, якщо ви google.

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