Оценки важности предиктора
imp = predictorImportance(tree)
вычисляет оценки важности предиктора для imp
= predictorImportance(tree
)tree
путем подведения итогов изменений в среднеквадратической ошибке из-за разделений на каждом предикторе и деления суммы на количество узлов ответвления.
|
Вектор - строка с тем же числом элементов как количество предикторов (столбцы) в |
Оцените важность предиктора для всех переменных прогноза в данных.
Загрузите набор данных 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';
В этом случае Displacement
является самым важным предиктором, сопровождаемым Horsepower
.
predictorImportance
вычисляет оценки важности предиктора для tree
путем подведения итогов изменений в среднеквадратической ошибке (MSE) из-за разделений на каждом предикторе и деления суммы на количество узлов ответвления. Если дерево выращено без суррогатных разделений, эта сумма взята по лучшим разделениям, найденным в каждом узле ответвления. Если дерево выращено с суррогатными разделениями, эта сумма взята по всем разделениям в каждом узле ответвления включая суррогатные разделения. imp
имеет один элемент для каждого входного предиктора в данных, используемых, чтобы обучить это дерево. В каждом узле MSE оценивается как ошибка узла, взвешенная вероятностью узла. Переменная важность, сопоставленная с этим разделением, вычисляется как различие между MSE для родительского узла и общим MSE для двух дочерних элементов.
Оценки важности предиктора не зависят от порядка предикторов, если вы используете суррогатные разделения, но действительно зависите от порядка, если вы не используете суррогатные разделения.
Если вы используете суррогатные разделения, predictorImportance
вычисляет оценки, прежде чем дерево будет уменьшаться путем сокращения или слияния листов. Если вы не используете суррогатные разделения, predictorImportance
вычисляет оценки после того, как дерево уменьшается путем сокращения или слияния листов. Поэтому сокращение дерева сокращением влияет на важность предиктора для дерева, выращенного без суррогатных разделений, и не влияет на важность предиктора для дерева, выращенного с суррогатными разделениями.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.