Есть ли способ объяснить прогноз из модели случайного леса?

11

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

Но было бы полезно / круто иметь возможность выводить что-то вроде графика переменной важности, но для конкретного прогнозируемого элемента, а не для обучающего набора. Что-то типа:

Предполагается, что пункт X будет собакой (вероятность 73%),
потому что:
Ноги = 4
Дыхание = плохой
мех =
недоедание = противный

Вы получаете смысл. Существует ли стандартный или, по крайней мере, оправданный способ извлечения этой информации из обученного случайного леса? Если так, есть ли у кого-нибудь код, который сделает это для пакета randomForest?

Харлан
источник
Некоторая сложность ... Вы можете представить подсчет количества раз, когда переменная Legs была частью пути принятия решения. Но вы бы просто сделали это для деревьев, которые предсказывали ответ большинства, или для всех них? Или разница?
Харлан
А менять всех mпредсказателей по одному и смотреть, как по-разному предсказывает лес, кажется довольно дорого. Должен быть лучший способ.
Харлан
Моей первой мыслью было поинтересоваться, чем то, что вы хотите сделать, отличается от переменной важности данных обучения? Вы хотите сказать, что с учетом других значений, какими они были, какова была чувствительность прогноза на ногах = 4 против ног = 2 или ног = 0? Вы смотрели на функцию частичного заговора в пакете randomforest?
B_Miner
Важность переменной обычно определяется в зависимости от всего учебного набора (или предполагаемой совокупности, или чего-то еще). Но что я хочу, так это значение переменной для одного предсказанного элемента. Представьте себе случай, когда лес состоит из очень однобоких деревьев решений. Тестовый экземпляр 1 может быть объяснен одним или несколькими узлами принятия решения, тогда как тестовый экземпляр 2 может быть объяснен гораздо большим набором узлов принятия решения. Я хочу очень простую интерпретируемую человеком версию этого, как ранжированный набор решений, топ-5 из которых я могу предоставить. Для одного дерева решений я бы просто прочитал их.
Харлан

Ответы:

3

Первая идея состоит в том, чтобы просто имитировать стратегию выбивания из-за переменной важности и просто проверить, как смешивание каждого атрибута ухудшит уверенность леса в классификации объектов (на OOB и с некоторыми повторениями, очевидно). Это требует некоторого кодирования, но, безусловно, достижимо.

Тем не менее, я чувствую, что это просто плохая идея - результат, вероятно, будет переменным, как ад (без стабилизирующего воздействия усреднения по объектам), шумным (для не очень уверенных объектов бессмысленные атрибуты могут иметь большие последствия) и трудно поддающимся интерпретировать (два или более правил взаимодействия атрибутов, вероятно, приведут к случайным воздействиям каждого вносящего атрибута).

Чтобы не оставлять вас с отрицательным ответом, я бы скорее попытался взглянуть на матрицу близости и возможные архетипы, которые она может выявить - это кажется гораздо более устойчивым и простым.


источник
Точка кооперативных правил / коррелированных предикторов - отличная критика. Чтобы сделать эту работу, может потребоваться обучить RF некоторому предварительно уменьшенному набору переменных или включить какую-то стратегию наказания, чтобы заставить RF сосредоточиться на подмножестве предикторов.
Харлан
0

Я бы попробовал с рамкой извести .

Работает со многими моделями (включая случайный лес). Он может использоваться для локальной интерпретации (то есть для объяснения одного прогноза) или для глобальной интерпретации (то есть для объяснения всей модели).

Цитирование из асбракта

В этой работе мы предлагаем LIME, новый метод объяснения, который объясняет предсказания любого классификатора интерпретируемым и точным способом, изучая интерпретируемую модель локально вокруг предсказания. Мы также предлагаем метод объяснения моделей путем представления репрезентативных индивидуальных предсказаний и их объяснений без лишних слов, обрамляя задачу как задачу субмодульной оптимизации.

У него есть пакеты как для R, так и для Python , а также множество примеров, если вы его используете.

PolBM
источник