predictorImportance

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

Синтаксис

imp = predictorImportance(tree)

Описание

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

Входные параметры

tree

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

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

imp

A вектора-строки с таким же количеством элементов, как и количество предикторов (столбцов) в 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стандартный алгоритм разделения предикторов ТЕЛЕЖКА предпочитает разделение непрерывного предиктора над этими двумя переменными.

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

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.

Подробнее о

расширить все