exponenta event banner

predictorImportance

Оценки важности предиктора для дерева регрессии

Синтаксис

imp = predictorImportance(tree)

Описание

imp = predictorImportance(tree) вычисляет оценки важности предиктора для tree суммированием изменений в среднеквадратичной ошибке из-за разбиений на каждом предикторе и делением суммы на число узлов ветви.

Входные аргументы

tree

Дерево регрессии, созданное fitrtree, или compact способ.

Выходные аргументы

imp

Вектор строки с тем же количеством элементов, что и число предикторов (столбцов) в tree.X. Записи являются оценками важности предиктора, с 0 представляет наименьшую возможную важность.

Примеры

развернуть все

Оцените важность предиктора для всех переменных предиктора в данных.

Загрузить carsmall набор данных.

load carsmall

Вырастить дерево регрессии для MPG использование Acceleration, Cylinders, Displacement, Horsepower, Model_Year, и Weight в качестве предикторов.

X = [Acceleration Cylinders Displacement Horsepower Model_Year Weight];
tree = fitrtree(X,MPG);

Оцените важность предиктора для всех переменных предиктора.

imp = predictorImportance(tree)
imp = 1×6

    0.0647    0.1068    0.1155    0.1411    0.3348    2.6565

Weight, последний предиктор, оказывает наибольшее влияние на пробег. Предиктор с минимальным влиянием на составление прогнозов является первой переменной, которая Acceleration.

Оцените важность предиктора для всех переменных в данных и там, где дерево регрессии содержит суррогатные разделения.

Загрузить carsmall набор данных.

load carsmall

Вырастить дерево регрессии для MPG использование Acceleration, Cylinders, Displacement, Horsepower, Model_Year, и Weight в качестве предикторов. Укажите, чтобы определить суррогатные разделения.

X = [Acceleration Cylinders Displacement Horsepower Model_Year Weight];
tree = fitrtree(X,MPG,'Surrogate','on');

Оцените важность предиктора для всех переменных предиктора.

imp = predictorImportance(tree)
imp = 1×6

    1.0449    2.4560    2.5570    2.5788    2.0832    2.8938

Сравнение imp к результатам оценки важности предиктора, Weight по-прежнему оказывает наибольшее влияние на пробег, но Cylinders является четвертым по значимости предиктором.

Загрузить carsmall набор данных. Рассмотрим модель, которая предсказывает среднюю экономию топлива автомобиля с учетом его ускорения, количества цилиндров, рабочего объема двигателя, лошадиных сил, производителя, модельного года и веса. Рассмотреть Cylinders, Mfg, и Model_Year в качестве категориальных переменных.

load carsmall
Cylinders = categorical(Cylinders);
Mfg = categorical(cellstr(Mfg));
Model_Year = categorical(Model_Year);
X = table(Acceleration,Cylinders,Displacement,Horsepower,Mfg,...
    Model_Year,Weight,MPG);

Отображение количества категорий, представленных в категориальных переменных.

numCylinders = numel(categories(Cylinders))
numCylinders = 3
numMfg = numel(categories(Mfg))
numMfg = 28
numModelYear = numel(categories(Model_Year))
numModelYear = 3

Потому что есть 3 категории только в Cylinders и Model_Yearстандартный алгоритм разделения предиктора CART предпочитает разделение непрерывного предиктора по этим двум переменным.

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

Mdl = fitrtree(X,'MPG','PredictorSelection','curvature','Surrogate','on');

Оценить значения важности предиктора путем суммирования изменений риска из-за расщеплений на каждом предикторе и деления суммы на количество узлов ветвления. Сравните оценки с помощью гистограммы.

imp = predictorImportance(Mdl);

figure;
bar(imp);
title('Predictor Importance Estimates');
ylabel('Estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

Figure contains an axes. The axes with title Predictor Importance Estimates contains an object of type bar.

В этом случае Displacement является наиболее важным предиктором, за которым следует Horsepower.

Подробнее

развернуть все