Создайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP)
plotPartialDependence(___, дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение" в дополнение к любому из аргументов в предыдущих синтаксисах. Например, если вы задаете Name,Value)'Conditional','absolute', plotPartialDependence функция создает фигуру включая PDP, график рассеивания выбранной функции и предсказанных ответов и графика ICE для каждого наблюдения.
Обучите дерево регрессии использование carsmall набор данных, и создает PDP, который показывает отношение между функцией и предсказанными ответами в обученном дереве регрессии.
Загрузите carsmall набор данных.
load carsmallЗадайте Weight, Cylinders, и Horsepower как переменные предикторы (X), и MPG как переменная отклика (Y).
X = [Weight,Cylinders,Horsepower]; Y = MPG;
Создайте дерево регрессии использование X и Y.
Mdl = fitrtree(X,Y);
Просмотрите графический дисплей обученного дерева регрессии.
view(Mdl,'Mode','graph')

Создайте PDP первого переменного предиктора, Weight.
plotPartialDependence(Mdl,1)

Синяя линия представляет усредненные частичные отношения между Weight (помеченный как x1) и MPG (помеченный как Y) в обученном дереве регрессии Mdl.
Средство просмотра дерева регрессии показывает, что первое решение состоит в том ли x1 меньше, чем 3 085,5. PDP также показывает большое изменение около x1 = 3085.5. Древовидное средство просмотра визуализирует каждое решение в каждом узле на основе переменных предикторов. Можно найти несколько разделений узлов на основе значений x1, но не легко выяснить зависимость Y на x1. Однако графики PDP составили в среднем предсказанные ответы против x1, таким образом, можно ясно видеть частичную зависимость Y на x1.
Маркирует x1 и Y значения по умолчанию имен предиктора и имени ответа. Можно изменить эти имена путем определения аргументов пары "имя-значение" 'PredictorNames' и 'ResponseName' когда вы обучаете Mdl использование fitrtree. Можно также изменить подписи по осям при помощи xlabel и ylabel функции.
Обучите Гауссову модель регрессии процесса использование сгенерированных выборочных данных, где переменная отклика включает взаимодействия между переменными предикторами. Затем создайте графики ICE, которые показывают отношение между функцией и предсказанными ответами для каждого наблюдения.
Сгенерируйте демонстрационные данные о предикторе x1 и x2.
rng('default') % For reproducibility n = 200; x1 = rand(n,1)*2-1; x2 = rand(n,1)*2-1;
Сгенерируйте значения ответа, которые включают взаимодействия между x1 и x2.
Y = x1-2*x1.*(x2>0)+0.1*rand(n,1);
Создайте Гауссову модель регрессии процесса использование [x1 x2] и Y.
Mdl = fitrgp([x1 x2],Y);
Создайте фигуру включая PDP (красная линия) для первого предиктора x1, график рассеивания (черные круговые маркеры) x1 и предсказанные ответы и набор графиков ICE (серые линии) путем определения 'Conditional' как 'centered'.
plotPartialDependence(Mdl,1,'Conditional','centered')

Когда 'Conditional' 'centered', plotPartialDependence смещения строят так, чтобы все графики начали с нуля, который полезен в исследовании совокупного эффекта выбранной функции.
PDP находит усредненные отношения, таким образом, он не показывает скрытые зависимости особенно, когда ответы включают взаимодействия между функциями. Однако графики ICE ясно показывают две различных зависимости ответов на x1.
Обучите ансамбль регрессии, использующий carsmall набор данных, и создает график PDP и графики ICE для каждого переменного предиктора с помощью нового набора данных, carbig. Затем сравните фигуры, чтобы анализировать важность переменных предикторов. Кроме того, сравните результаты с оценками важности предиктора, возвращенной predictorImportance функция.
Загрузите carsmall набор данных.
load carsmallЗадайте Weight, Cylinders, Horsepower, и Model_Year как переменные предикторы (X), и MPG как переменная отклика (Y).
X = [Weight,Cylinders,Horsepower,Model_Year]; Y = MPG;
Обучите ансамбль регрессии, использующий X и Y.
Mdl = fitrensemble(X,Y, ... 'PredictorNames',{'Weight','Cylinders','Horsepower','Model Year'}, ... 'ResponseName','MPG');
Сравните важность переменных предикторов при помощи plotPartialDependence и predictorImportance функции. plotPartialDependence функция визуализирует отношения между выбранным предиктором и предсказанными ответами. predictorImportance обобщает важность предиктора с одним значением.
Создайте фигуру включая график PDP (красная линия) и графики ICE (серые линии) для каждого предиктора при помощи plotPartialDependence и определение 'Conditional','absolute'. Каждая фигура также включает график рассеивания (черные круговые маркеры) выбранного предиктора и предсказанных ответов. Кроме того, загрузите carbig набор данных и использование это как новые данные о предикторе, Xnew. Когда вы обеспечиваете Xnew, plotPartialDependence функционируйте использует Xnew вместо данных о предикторе в Mdl.
load carbig Xnew = [Weight,Cylinders,Horsepower,Model_Year]; f = figure; f.Position = [100 100 1.75*f.Position(3:4)]; % Enlarge figure for visibility. for i = 1 : 4 subplot(2,2,i) plotPartialDependence(Mdl,i,Xnew,'Conditional','absolute') end

Вычислите оценки важности предиктора при помощи predictorImportance. Эта функция изменения сумм в среднеквадратической ошибке (MSE) из-за разделений на каждом предикторе, и затем делит сумму на количество узлов ветви.
imp = predictorImportance(Mdl); figure; bar(imp); title('Predictor Importance Estimates'); ylabel('Estimates'); xlabel('Predictors'); ax = gca; ax.XTickLabel = Mdl.PredictorNames;

Переменная Weight оказывает большую часть влияния на MPG согласно важности предиктора. PDP Weight также показывает тот MPG имеет высокую частичную зависимость от Weight. Переменная Cylinders оказывает наименьшее количество влияния на MPG согласно важности предиктора. PDP Cylinders также показывает тот MPG не изменяется очень в зависимости от Cylinders.
Обучите модель регрессии машины опорных векторов (SVM) использование carsmall набор данных, и создает PDP для двух переменных предикторов. Затем извлеките частичные оценки зависимости из выхода plotPartialDependence.
Загрузите carsmall набор данных.
load carsmallЗадайте Weight, Cylinders, и Horsepower как переменные предикторы (Tbl).
Tbl = table(Weight,Cylinders,Horsepower);
Создайте модель регрессии машины опорных векторов (SVM) использование Tbl и переменная отклика MPG. Используйте Гауссову функцию ядра с автоматической шкалой ядра.
Mdl = fitrsvm(Tbl,MPG,'ResponseName','MPG', ... 'KernelFunction','gaussian','KernelScale','auto');
Создайте PDP, который визуализирует частичную зависимость предсказанных ответов (MPG) на переменных предикторах Weight и Horsepower. Используйте QueryPoints аргумент пары "имя-значение", чтобы задать точки, чтобы вычислить частичную зависимость.
pt1 = linspace(min(Weight),max(Weight),50)';
pt2 = linspace(min(Horsepower),max(Horsepower),50)';
ax = plotPartialDependence(Mdl,{'Weight','Horsepower'},'QueryPoints',[pt1 pt2]);
view(140,30) % Modify the viewing angle
PDP показывает эффект взаимодействия между Weight и Horsepower.
Извлеките предполагаемую частичную зависимость MPG на Weight и Horsepower. XData, YData, и ZData значения ax.Children значения оси X (первые выбранные значения предиктора), значения оси Y (вторые выбранные значения предиктора) и значения оси z (соответствующие частичные значения зависимости), соответственно.
xval = ax.Children.XData; yval = ax.Children.YData; zval = ax.Children.ZData;
Если вы задаете 'Conditional' как 'absolute', plotPartialDependence создает фигуру включая PDP, график рассеивания и набор графиков ICE. ax.Children(1) и ax.Children(2) соответствуйте PDP и графику рассеивания, соответственно. Остающиеся элементы ax.Children соответствуйте графикам ICE. XData и YData значения ax.Children(i) значения оси X (выбранные значения предиктора) и значения оси Y (соответствующие частичные значения зависимости), соответственно.
Mdl — Обученная модель регрессииОбученная модель регрессии в виде полного или компактного объекта модели регрессии описана в следующей таблице.
| Обученный тип модели | Объект модели регрессии | Возвращенный |
|---|---|---|
| Загрузите агрегацию для ансамбля деревьев решений | TreeBagger, CompactTreeBagger | TreeBagger, compact |
| Ансамбль моделей регрессии | RegressionEnsemble, RegressionBaggedEnsemble, CompactRegressionEnsemble | fitrensemble, compact |
| Гауссова регрессия процесса | RegressionGP, CompactRegressionGP | fitrgp, compact |
| Обобщенная линейная модель смешанного эффекта | GeneralizedLinearMixedModel | fitglme |
| Обобщенная линейная модель | GeneralizedLinearModel, CompactGeneralizedLinearModel | fitglm, stepwiseglm, compact |
| Линейная модель смешанного эффекта | LinearMixedModel | fitlme, fitlmematrix |
| Линейная регрессия | LinearModel, CompactLinearModel | fitlm, stepwiselm, compact |
| Линейная регрессия для высоко-размерных данных | RegressionLinear | fitrlinear |
| Нелинейная регрессия | NonLinearModel | fitnlm |
| Дерево регрессии | RegressionTree, CompactRegressionTree | fitrtree, compact |
| Регрессия машины опорных векторов | RegressionSVM, CompactRegressionSVM | fitrsvm, compact |
Если Mdl компактный объект модели регрессии, необходимо обеспечить X.
plotPartialDependence не поддерживает обученный объект модели с разреженной матрицей. Если вы обучаете Mdl при помощи fitrlinear, используйте полную числовую матрицу в данных о предикторе, где строки соответствуют отдельным наблюдениям.
Vars — Функции, чтобы визуализироватьФункции, чтобы визуализировать в виде вектора положительных целых чисел, вектора символов или строкового скаляра, массива строк или массива ячеек из символьных векторов. Можно выбрать один или два признака, как показано в следующих таблицах.
Одна функция
| Значение | Описание |
|---|---|
| положительное целое число | Индексируйте значение, соответствующее столбцу данных о предикторе, чтобы визуализировать. |
| вектор символов или строковый скаляр |
Имя переменного предиктора, чтобы визуализировать. Имя должно совпадать с записью в |
Две функции
| Значение | Описание |
|---|---|
| вектор двух положительных целых чисел | Индексируйте значения, соответствующие столбцам данных о предикторе, чтобы визуализировать. |
| массив строк или массив ячеек из символьных векторов |
Имена переменных предикторов, чтобы визуализировать. Каждым элементом в массиве является имя переменного предиктора. Имена должны совпадать с записями в |
Пример: {'x1','x3'}
Типы данных: single | double | char | string | cell
X — Данные о предиктореДанные о предикторе в виде числовой матрицы или таблицы. Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.
Если Mdl полный объект модели регрессии, plotPartialDependence использует данные о предикторе в Mdl. Если вы обеспечиваете X, затем plotPartialDependence не использует данные о предикторе в Mdl и использование X только.
Если Mdl компактный объект модели регрессии, необходимо обеспечить X.
X должно быть сопоставимо с данными о предикторе, которые обучили Mdl, сохраненный в любом Mdl.X или Mdl.Variables.
Если вы обучили Mdl использование числовой матрицы, затем X должна быть числовая матрица. Переменные, составляющие столбцы X должен иметь тот же номер и порядок как переменные предикторы, которые обучили Mdl.
Если вы обучили Mdl с помощью таблицы (например, Tbl), затем X должна быть таблица. Все переменные предикторы в X должен иметь те же имена переменных и типы данных как имена и типы в Tbl. Однако порядок следования столбцов X не должен соответствовать порядку следования столбцов Tbl.
plotPartialDependence не поддерживает разреженную матрицу.
Типы данных: single | double | table
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
plotPartialDependence(Mdl,Vars,X,'NumObservationsToSample',100,'UseParallel',true) создает PDP при помощи 100 произведенных наблюдений в X и выполнение for- итерации цикла параллельно.'Conditional' — Постройте тип'none' (значение по умолчанию) | 'absolute' | 'centered'Постройте тип в виде разделенной запятой пары, состоящей из 'Conditional' и 'none', 'absolute', или 'centered'.
| Значение | Описание |
|---|---|
'none' |
|
'absolute' |
Это значение допустимо, когда вы выбираете только одну функцию. |
'centered' |
Это значение допустимо, когда вы выбираете только одну функцию. |
Для получения дополнительной информации см. Частичный График Зависимости и Отдельные Условные Графики Ожидания.
Пример: 'Conditional','absolute'
'NumObservationsToSample' — Количество наблюдений к выборкеКоличество наблюдений к выборке в виде разделенной запятой пары, состоящей из 'NumObservationsToSample' и положительное целое число. Значением по умолчанию является количество общих наблюдений в любом Mdl или X. Если вы задаете значение, больше, чем количество общих наблюдений, то plotPartialDependence использование все наблюдения.
plotPartialDependence демонстрационные наблюдения без замены при помощи функционального datasample и использует произведенные наблюдения, чтобы вычислить частичную зависимость. Если вы задаете 'Conditional' как любой 'absolute' или 'centered', plotPartialDependence создает фигуру включая график ICE для каждого произведенного наблюдения.
Пример: 'NumObservationsToSample',100
Типы данных: single | double
'ParentAxisHandle' — Оси, в которых можно построитьgca (значение по умолчанию) | объект осейОси, в которых можно построить в виде разделенной запятой пары, состоящей из 'ParentAxisHandle' и объект осей. Если вы не задаете оси и если текущая система координат является Декартовой, то plotPartialDependence использует текущую систему координат (gca). Если оси не существуют, plotPartialDependence графики в новой фигуре.
Пример: 'ParentAxisHandle',ax
'QueryPoints' — Точки, чтобы вычислить частичную зависимостьТочки, чтобы вычислить частичную зависимость в виде разделенной запятой пары, состоящей из 'QueryPoints' и числовой вектор-столбец, числовая матрица 2D столбца или массив ячеек двух числовых вектор-столбцов.
Значением по умолчанию является числовой вектор-столбец или числовая матрица 2D столбца, в зависимости от количества выбранных функций, где столбец содержит 100 равномерно разнесенных точек между минимальными и максимальными значениями выбранной функции.
Если вы выбираете одну функцию в Vars, используйте числовой вектор-столбец.
Если вы выбираете две функции в Vars:
Используйте числовую матрицу 2D столбца, чтобы задать то же число точек для каждой функции.
Используйте массив ячеек двух числовых вектор-столбцов, чтобы задать различное число точек для каждой функции.
Значениями по умолчанию для категориальной функции являются все категориальные значения в выбранной функции. Вы не можете изменить 'QueryPoints' для категориальной функции. Если вы выбираете одну числовую функцию и одну категориальную функцию, можно задать 'QueryPoints' для числовой функции при помощи массива ячеек, состоящего из числового вектор-столбца и пустого массива.
Пример: 'QueryPoints',{pt,[]}
Типы данных: single | double | cell
'UseParallel' — Отметьте, чтобы запуститься параллельноfalse (значение по умолчанию) | trueОтметьте, чтобы запуститься параллельно в виде разделенной запятой пары, состоящей из 'UseParallel' и true или false. Если вы задаете 'UseParallel' как true, plotPartialDependence выполняет for- итерации цикла параллельно при помощи parfor при предсказании ответов для каждого наблюдения и усреднении их.
Пример: 'UseParallel',true
Типы данных: логический
ax — Оси графикаОси графика, возвращенного как объект осей. Для получения дополнительной информации о том, как изменить внешний вид осей и данных об извлечении из графиков, см. Внешний вид осей (MATLAB) и Извлечение Частичные Оценки Зависимости из Графиков.
Частичный график зависимости [1] (PDP) визуализирует отношения между функциями и предсказанными ответами в обученной модели регрессии. plotPartialDependence построил или график или объемную поверхностную диаграмму предсказанных ответов против одной функции или пары функций, соответственно, путем маргинализации по другим переменным.
Считайте PDP для подмножества XS целого набора функций X = {x1, x2, …, xm}. Подмножество XS включает или одну функцию или две функции: XS = {xS1} или XS = {xS1, xS2}. Позвольте XC быть дополнительным набором XS в X. Предсказанный ответ f (X) зависит от всех функций в X:
f (X) = f (XS, XC).
Частичная зависимость предсказанных ответов на XS задана ожиданием предсказанных ответов относительно XC:
где pC (XC) является безусловной вероятностью XC, то есть, . Предположение, что каждое наблюдение одинаково вероятно, и зависимость между XS и XC и взаимодействиями XS и XC в ответах, не сильно, plotPartialDependence оценивает частичную зависимость при помощи наблюдаемых данных о предикторе можно следующим образом:
| (1) |
где N является количеством наблюдений, и Xi = (XiS, XiC) является i th наблюдение.
plotPartialDependence создает PDP при помощи уравнения 1. Введите обученную модель (f(·)) и выберите функции (XS), чтобы визуализировать при помощи входных параметров Mdl и Vars, соответственно. plotPartialDependence вычисляет частичную зависимость в 100 равномерно разнесенных точках XS или точек, что вы задаете при помощи 'QueryPoints' аргумент пары "имя-значение". Можно задать номер (N) наблюдений к выборке из данных данных о предикторе при помощи 'NumObservationsToSample' аргумент пары "имя-значение".
График отдельного условного ожидания (ICE) [2], как расширение PDP, визуализирует отношение между функцией и предсказанными ответами для каждого наблюдения. В то время как PDP визуализирует усредненное отношение между функциями и предсказанными ответами, набор графиков ICE дезагрегирует усредненную информацию и визуализирует отдельную зависимость для каждого наблюдения.
plotPartialDependence создает график ICE для каждого наблюдения. Набор графиков ICE полезен, чтобы исследовать неоднородности частичной зависимости, происходящей из различных наблюдений. plotPartialDependence может также создать графики ICE с любыми данными о предикторе, обеспеченными через входной параметр X. Можно использовать эту функцию, чтобы исследовать предсказанный пробел ответа.
Считайте график ICE для выбранной функции xS с заданным наблюдением XiC, где XS = {xS}, XC является дополнительным набором XS в целом наборе функций X, и Xi = (XiS, XiC) является i th наблюдение. График ICE соответствует слагаемому суммирования в уравнении 1:
plotPartialDependence графики для каждого наблюдения i, когда вы задаете 'Conditional' как 'absolute'. Если вы задаете 'Conditional' как 'centered', plotPartialDependence строит все графики после удаления эффектов уровня из-за различных наблюдений:
Это вычитание гарантирует, что каждый график начинает с нуля, так, чтобы можно было исследовать совокупный эффект XS и взаимодействий между XS и XC.
Взвешенный пересекающийся алгоритм [1] является методом, чтобы оценить частичную зависимость для основанной на дереве модели регрессии. Предполагаемая частичная зависимость является взвешенным средним значений ответа, соответствующих вершинам, которые посещают во время обхода дерева.
Позвольте XS быть подмножеством целого набора функций X и XC быть дополнительным набором XS в X. Для каждого значения XS, чтобы вычислить частичную зависимость, алгоритм пересекает дерево от корня (начало) узел вниз к листу (терминал) узлы и находит веса вершин. Обход запускается путем присвоения значения веса одного в корневом узле. Если узел разделяет XS, пересечениями алгоритма к соответствующему дочернему узлу в зависимости от значения XS. Вес дочернего узла становится тем же значением как свой родительский узел. Если узел разделяет XC, пересечениями алгоритма к обоим дочерним узлам. Вес каждого дочернего узла становится значением своего родительского узла, умноженного на часть наблюдений, соответствующих каждому дочернему узлу. После завершения обхода дерева алгоритм вычисляет взвешенное среднее при помощи присвоенных весов.
Для ансамбля деревьев регрессии предполагаемая частичная зависимость является в среднем взвешенными средними по отдельным деревьям регрессии.
plotPartialDependence использует predict функция, чтобы предсказать ответы. plotPartialDependence выбирает соответствующий predict функция согласно Mdl и запуски predict с его настройками по умолчанию. Для получения дополнительной информации о каждом predict функционируйте, смотрите predict функция в следующей таблице. Если Mdl основанная на дереве модель (не включая повышенный ансамбль деревьев) и 'Conditional' 'none', затем plotPartialDependence использует взвешенный пересекающийся алгоритм вместо predict функция. Для получения дополнительной информации см. Взвешенный Пересекающийся Алгоритм.
| Обученный тип модели | Объект модели регрессии | Функция, чтобы предсказать ответы |
|---|---|---|
| Загрузите агрегацию для ансамбля деревьев решений | CompactTreeBagger | predict |
| Загрузите агрегацию для ансамбля деревьев решений | TreeBagger | predict |
| Ансамбль моделей регрессии | RegressionEnsemble, RegressionBaggedEnsemble, CompactRegressionEnsemble | predict |
| Гауссова регрессия процесса | RegressionGP, CompactRegressionGP | predict |
| Обобщенная линейная модель смешанного эффекта | GeneralizedLinearMixedModel | predict |
| Обобщенная линейная модель | GeneralizedLinearModel, CompactGeneralizedLinearModel | predict |
| Линейная модель смешанного эффекта | LinearMixedModel | predict |
| Линейная регрессия | LinearModel, CompactLinearModel | predict |
| Линейная регрессия для высоко-размерных данных | RegressionLinear | predict |
| Нелинейная регрессия | NonLinearModel | predict |
| Дерево регрессии | RegressionTree, CompactRegressionTree | predict |
| Регрессия машины опорных векторов | RegressionSVM, CompactRegressionSVM | predict |
[1] Фридман, J. H. “Жадное приближение функций: машина повышения градиента”. Летопись Статистики. Издание 29, № 5, 2001, стр 1189-1232.
[2] Голдстайн, A., А. Кэпелнер, Дж. Блейч и Э. Питкин. “Посмотрев в черном квадрате: Визуализация статистического изучения с графиками отдельного условного ожидания”. Журнал Вычислительной и Графической Статистики. Издание 24, № 1, 2015, стр 44-65.
[3] Hastie, T., Р. Тибширэни и Дж. Х. Фридман. Элементы статистического изучения. Нью-Йорк: Спрингер, 2001.
Чтобы запуститься параллельно, установите 'UseParallel' опция к true.
Установите 'UseParallel',true аргумент пары "имя-значение" в вызове этой функции.
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
oobPermutedPredictorImportance | predictorImportance (RegressionEnsemble) | predictorImportance (RegressionTree) | relieff | sequentialfs
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.