Скажем, у меня есть модель прогнозирующей классификации, основанная на случайном лесу (используя пакет randomForest в R). Я хотел бы настроить его так, чтобы конечные пользователи могли указать элемент, для которого создается прогноз, и он выведет вероятность классификации. Пока проблем нет.
Но было бы полезно / круто иметь возможность выводить что-то вроде графика переменной важности, но для конкретного прогнозируемого элемента, а не для обучающего набора. Что-то типа:
Предполагается, что пункт X будет собакой (вероятность 73%),
потому что:
Ноги = 4
Дыхание = плохой
мех =
недоедание = противный
Вы получаете смысл. Существует ли стандартный или, по крайней мере, оправданный способ извлечения этой информации из обученного случайного леса? Если так, есть ли у кого-нибудь код, который сделает это для пакета randomForest?
m
предсказателей по одному и смотреть, как по-разному предсказывает лес, кажется довольно дорого. Должен быть лучший способ.Ответы:
Первая идея состоит в том, чтобы просто имитировать стратегию выбивания из-за переменной важности и просто проверить, как смешивание каждого атрибута ухудшит уверенность леса в классификации объектов (на OOB и с некоторыми повторениями, очевидно). Это требует некоторого кодирования, но, безусловно, достижимо.
Тем не менее, я чувствую, что это просто плохая идея - результат, вероятно, будет переменным, как ад (без стабилизирующего воздействия усреднения по объектам), шумным (для не очень уверенных объектов бессмысленные атрибуты могут иметь большие последствия) и трудно поддающимся интерпретировать (два или более правил взаимодействия атрибутов, вероятно, приведут к случайным воздействиям каждого вносящего атрибута).
Чтобы не оставлять вас с отрицательным ответом, я бы скорее попытался взглянуть на матрицу близости и возможные архетипы, которые она может выявить - это кажется гораздо более устойчивым и простым.
источник
Я бы попробовал с рамкой извести .
Работает со многими моделями (включая случайный лес). Он может использоваться для локальной интерпретации (то есть для объяснения одного прогноза) или для глобальной интерпретации (то есть для объяснения всей модели).
Цитирование из асбракта
У него есть пакеты как для R, так и для Python , а также множество примеров, если вы его используете.
источник