Создайте графики отдельного условного ожидания (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.