plotPartialDependence

Создайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE)

Описание

пример

plotPartialDependence(RegressionMdl,Vars) вычисляет и строит график частичной зависимости между переменными предиктора, перечисленными в Vars и ответы, предсказанные при помощи регрессионой модели RegressionMdl, который содержит данные предиктора.

  • Если вы задаете одну переменную в Varsфункция создает линейный график частичной зависимости от переменной.

  • Если вы задаете две переменные в Varsфункция создает объемную поверхностную диаграмму частичной зависимости от этих двух переменных.

пример

plotPartialDependence(ClassificationMdl,Vars,Labels) вычисляет и строит график частичной зависимости между переменными предиктора, перечисленными в Vars и счета для классов, указанных в Labels при помощи классификационной модели ClassificationMdl, который содержит данные предиктора.

  • Если вы задаете одну переменную в Vars и один класс в Labelsфункция создает линейный график частичной зависимости от переменной для заданного класса.

  • Если вы задаете одну переменную в Vars и несколько классов в Labelsфункция создает линейный график для каждого класса на одном рисунке.

  • Если вы задаете две переменные в Vars и один класс в Labelsфункция создает объемную поверхностную диаграмму частичной зависимости от этих двух переменных.

пример

plotPartialDependence(___,Data) использует новые данные предиктора Data. Можно задать Data в дополнение к любой комбинации входных аргументов в предыдущих синтаксисах.

пример

plotPartialDependence(___,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера, если вы задаете 'Conditional','absolute', plotPartialDependence функция создает рисунок, включающую PDP, график поля точек выбранной переменной предиктора и предсказанные отклики или счета, и график ICE для каждого наблюдения.

пример

ax = plotPartialDependence(___) возвращает оси графика.

Примеры

свернуть все

Обучите регрессионное дерево с помощью 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')

Figure Regression tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 60 objects of type line, text.

Создайте PDP первой переменной предиктора, Weight.

plotPartialDependence(Mdl,1)

Figure contains an axes. The axes with title Partial Dependence Plot contains an object of type line.

Эта построенная линия представляет усредненные частичные отношения между Weight (маркируется как x1) и MPG (маркируется как Y) в обученном регрессионном дереве Mdl. The x-sis minor ticks представляют уникальные значения в x1.

Средство просмотра регрессионного дерева показывает, что первым решением является x1 меньше 3085,5. PDP также показывает большое изменение около x1 = 3085.5. Средство просмотра дерева визуализирует каждое решение в каждом узле на основе переменных предиктора. Вы можете найти несколько узлов, разделенных на основе значений x1, но определяющий зависимость Y на x1 не легко. Однако plotPartialDependence графики средние предсказанные отклики против x1, так что вы четко видите частичную зависимость Y на x1.

Метки x1 и Y являются значениями по умолчанию для имен предиктора и имени отклика. Можно изменить эти имена, задав аргументы пары "имя-значение" 'PredictorNames' и 'ResponseName' когда вы обучаете Mdl использование fitrtree. Можно также изменять подписи по осям при помощи xlabel и ylabel функций.

Обучите наивную модель классификации Байеса с fisheriris набор данных и создайте PDP, который показывает связь между переменной предиктора и предсказанными счетами (апостериорные вероятности) для нескольких классов.

Загрузите fisheriris набор данных, который содержит виды (species) и измерения (meas) на длину чашелистика, ширину чашелистика, длину лепестка и ширину лепестка для 150 образцов радужки. Набор данных содержит 50 экземпляров каждого из трех видов: сетоза, версиколор и виргиника.

load fisheriris

Обучите наивную модель классификации Байеса с species как ответ и meas как предикторы.

Mdl = fitcnb(meas,species);

Создайте PDP из счетов, предсказанных Mdl для всех трех классов species против третьей переменной предиктора x3. Задайте метки классов при помощи ClassNames свойство Mdl.

plotPartialDependence(Mdl,3,Mdl.ClassNames);

Figure contains an axes. The axes with title Partial Dependence Plot contains 3 objects of type line. These objects represent setosa, versicolor, virginica.

Согласно этой модели, вероятность virginica увеличивается с x3. Вероятность setosa составляет около 0,33, откуда x3 от 0 до около 2,5, и затем вероятность падает почти до 0.

Обучите регрессионую модель Гауссова процесса, используя сгенерированные выборочные данные, где переменная отклика включает взаимодействия между переменными предиктора. Затем создайте графики 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')

Figure contains an axes. The axes with title Individual Conditional Expectation Plot contains 202 objects of type line, scatter.

Когда 'Conditional' является 'centered', plotPartialDependence смещает графики так, чтобы все графики начинались с нуля, что полезно при рассмотрении совокупного эффекта выбранной функции.

PDP находит усредненные отношения, поэтому не обнаруживает скрытых зависимостей, особенно когда отклики включают взаимодействия между функциями. Однако графики ICE четко показывают две различные зависимости откликов от x1.

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

Загрузите census1994 набор данных, который содержит годовые данные о зарплате в США, классифицированный как <=50K или >50Kи несколько демографических переменных.

load census1994

Извлеките подмножество переменных для анализа из таблиц adultdata и adulttest.

X = adultdata(:,{'age','workClass','education_num','marital_status','race', ...
   'sex','capital_gain','capital_loss','hours_per_week','salary'});
Xnew = adulttest(:,{'age','workClass','education_num','marital_status','race', ...
   'sex','capital_gain','capital_loss','hours_per_week','salary'});

Обучите ансамбль классификаторов с salary в качестве отклика и остальных переменных в качестве предикторов при помощи функции fitcensemble. Для двоичной классификации, fitcensemble агрегирует 100 деревьев классификации с помощью LogitBoost способ.

Mdl = fitcensemble(X,'salary');

Смотрите имена классов в Mdl.

Mdl.ClassNames
ans = 2x1 categorical
     <=50K 
     >50K 

Создайте график частичной зависимости счетов, предсказанной Mdl для второго класса salary (>50K) против предиктора age использование обучающих данных.

plotPartialDependence(Mdl,'age',Mdl.ClassNames(2))

Figure contains an axes. The axes with title Partial Dependence Plot contains an object of type line.

Создайте PDP счетов для >50K классов против age использование новых данных предиктора из таблицы Xnew.

plotPartialDependence(Mdl,'age',Mdl.ClassNames(2),Xnew)

Figure contains an axes. The axes with title Partial Dependence Plot contains an object of type line.

Эти два графика показывают сходные формы для частичной зависимости предсказанного счета высокого salary (>50K) на age. Оба графиков указывают, что предсказанный счет высокой зарплаты быстро повышается до 30 лет, затем остается почти плоским до 60 лет, а затем быстро падает. Однако график, основанный на новых данных, дает несколько более высокие счета для возрастов старше 65 лет.

Обучите регрессионный ансамбль с помощью 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 функций. The plotPartialDependence функция визуализирует отношения между выбранным предиктором и предсказанными откликами. predictorImportance суммирует важность предиктора с одним значением.

Создайте рисунок, включающее график PDP (красная линия) и графики ICE (серые линии) для каждого предиктора при помощи plotPartialDependence и определение 'Conditional','absolute'. Каждый рисунок также включает график поля точек (маркеры круга) выбранного предиктора и предсказанные отклики. Кроме того, загрузите carbig набор данных и используйте его как новые данные предиктора, Xnew. Когда вы предоставляете Xnew, а plotPartialDependence функция использует Xnew вместо данных предиктора в Mdl.

load carbig
Xnew = [Weight,Cylinders,Horsepower,Model_Year];

figure
t = tiledlayout(2,2,'TileSpacing','compact');
title(t,'Individual Conditional Expectation Plots')

for i = 1 : 4
    nexttile
    plotPartialDependence(Mdl,i,Xnew,'Conditional','absolute')
    title('')
end

Figure contains 4 axes. Axes 1 contains 408 objects of type line, scatter. Axes 2 contains 408 objects of type line, scatter. Axes 3 contains 408 objects of type line, scatter. Axes 4 contains 408 objects of type line, scatter.

Вычислите оценки предикторной важности при помощи predictorImportance. Эта функция суммирует изменения средней квадратичной невязки (MSE) из-за разбиения на каждый предиктор, а затем делит сумму на количество узлов ветви.

imp = predictorImportance(Mdl);
figure
bar(imp)
title('Predictor Importance Estimates')
ylabel('Estimates')
xlabel('Predictors')
ax = gca;
ax.XTickLabel = Mdl.PredictorNames;

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

Переменная Weight оказывает наибольшее влияние на MPG согласно значимости предиктора. PDP Weight также показывает, что MPG имеет высокую частичную зависимость от Weight. Переменная Cylinders оказывает наименьшее влияние на MPG согласно значимости предиктора. PDP Cylinders также показывает, что MPG не сильно меняется в зависимости от Cylinders.

Обучите обобщенную аддитивную модель (GAM) как с линейными, так и с терминами взаимодействия для предикторов. Затем создайте PDP с как линейными, так и с терминами взаимодействия и PDP с только линейными терминами. Укажите, включать ли условия взаимодействия при создании PDP.

Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

load ionosphere

Обучите GAM с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. Укажите, чтобы включить 10 наиболее важных условий взаимодействия.

Mdl = fitcgam(X,Y,'ClassNames',{'b','g'},'Interactions',10);

Mdl является ClassificationGAM объект модели.

Перечислите условия взаимодействия в Mdl.

Mdl.Interactions
ans = 10×2

     1     5
     7     8
     6     7
     5     6
     5     7
     5     8
     3     5
     4     7
     1     7
     4     5

Каждая строка Interactions представляет один термин взаимодействия и содержит индексы столбцов переменных предиктора для термина взаимодействия.

Найдите наиболее частый предиктор в терминах взаимодействия.

mode(Mdl.Interactions,'all')
ans = 5

Наиболее частым предиктором в терминах взаимодействия является 5-й предиктор (x5). Создайте PDP для 5-го предиктора. Чтобы исключить условия взаимодействия из расчетов, задайте 'IncludeInteractions',false для второго PDP.

plotPartialDependence(Mdl,5,Mdl.ClassNames(1))
hold on
plotPartialDependence(Mdl,5,Mdl.ClassNames(1),'IncludeInteractions',false)
grid on
legend('Linear and interaction terms','Linear terms only')
title('PDPs of Posterior Probabilities for 5th Predictor')
hold off

Figure contains an axes. The axes with title PDPs of Posterior Probabilities for 5th Predictor contains 2 objects of type line. These objects represent Linear and interaction terms, Linear terms only.

График показывает, что частичная зависимость счетов (апостериорные вероятности) от x5 изменяется в зависимости от того, включает ли модель условия взаимодействия, особенно где x5 находится между 0,2 и 0,45.

Обучите регрессионую модель машины опорных векторов (SVM) с помощью carsmall Данные установите и создайте PDP для двух переменных предиктора. Затем извлеките оценки частичной зависимости из выхода plotPartialDependence. Также можно получить значения частичной зависимости при помощи partialDependence функция.

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

load carsmall

Задайте Weight, Cylinders, Displacement, и Horsepower как переменные предиктора (Tbl).

Tbl = table(Weight,Cylinders,Displacement,Horsepower);

Создайте регрессионую модель SVM с помощью Tbl и переменной отклика MPG. Используйте функцию Гауссова ядра с автоматической шкалой ядра.

Mdl = fitrsvm(Tbl,MPG,'ResponseName','MPG', ...
    'CategoricalPredictors','Cylinders','Standardize',true, ...
    'KernelFunction','gaussian','KernelScale','auto');

Создайте PDP, который визуализирует частичную зависимость предсказанных откликов (MPG) на переменных предиктора Weight и Cylinders. Задайте точки запроса, чтобы вычислить частичную зависимость для Weight при помощи 'QueryPoints' аргумент пары "имя-значение". Вы не можете задать 'QueryPoints' значение для Cylinders потому что это категориальная переменная. plotPartialDependence использует все категориальные значения.

pt = linspace(min(Weight),max(Weight),50)';
ax = plotPartialDependence(Mdl,{'Weight','Cylinders'},'QueryPoints',{pt,[]});
view(140,30) % Modify the viewing angle

Figure contains an axes. The axes with title Partial Dependence Plot contains an object of type surface.

PDP показывает эффект взаимодействия между Weight и Cylinders. Частичная зависимость MPG на Weight изменяется в зависимости от значения Cylinders.

Извлеките предполагаемую частичную зависимость MPG на Weight и Cylinders. The XData, YData, и ZData значения ax.Children являются значениями по оси X (первыми выбранными значениями предиктора), значениями по оси Y (вторыми выбранными значениями предиктора) и значениями по оси Z (соответствующими значениями частичной зависимости), соответственно.

xval = ax.Children.XData;
yval = ax.Children.YData;
zval = ax.Children.ZData;

Также можно получить значения частичной зависимости при помощи partialDependence функция.

[pd,x,y] = partialDependence(Mdl,{'Weight','Cylinders'},'QueryPoints',{pt,[]});

pd содержит значения частичных зависимостей для точек запроса x и y.

Если вы задаете 'Conditional' как 'absolute', plotPartialDependence создает рисунок, включающую PDP, график поля точек и набор графиков ICE. ax.Children(1) и ax.Children(2) соответствуют PDP и графику поля точек, соответственно. Остальные элементы ax.Children соответствуют графикам ДВС. The XData и YData значения ax.Children(i) являются значениями по оси X (выбранные значения предиктора) и значениями по оси Y (соответствующие значения частичной зависимости), соответственно.

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

свернуть все

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

МодельПолный или компактный объект модели
Обобщенная линейная модельGeneralizedLinearModel, CompactGeneralizedLinearModel
Обобщенная линейная модель смешанного эффектаGeneralizedLinearMixedModel
Линейная регрессияLinearModel, CompactLinearModel
Линейная модель смешанного эффектаLinearMixedModel
Нелинейная регрессияNonLinearModel
Ансамбль регрессионных моделейRegressionEnsemble, RegressionBaggedEnsemble, CompactRegressionEnsemble
Обобщенная аддитивная модель (GAM)RegressionGAM, CompactRegressionGAM
Регрессия Гауссова процессаRegressionGP, CompactRegressionGP
Гауссовская регрессионая модель ядра с использованием расширения случайных функцийRegressionKernel
Линейная регрессия для высоко-размерных данныхRegressionLinear
Модель регрессии нейронной сетиRegressionNeuralNetwork, CompactRegressionNeuralNetwork
Машина опорных векторов (SVM)RegressionSVM, CompactRegressionSVM
Дерево регрессииRegressionTree, CompactRegressionTree
Агрегация Bootstrap для ансамбля деревьев принятия решенийTreeBagger, CompactTreeBagger

Если RegressionMdl является объектом модели, который не содержит данных предиктора (для примера, компактная модель), необходимо предоставить входной параметр Data.

plotPartialDependence не поддерживает объект модели, обученный с разреженной матрицей. Когда вы обучаете модель, используйте полную числовую матрицу или таблицу для данных предиктора, где строки соответствуют отдельным наблюдениям.

Классификационная модель, заданная как полный или компактный объект классификационной модели, как представлено в следующих таблицах поддерживаемых моделей.

МодельПолный или компактный объект модели
Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminant
Многоклассовая модель для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOC
Ансамбль учащихся по классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemble
Обобщенная аддитивная модель (GAM)ClassificationGAM, CompactClassificationGAM
Гауссовская модель классификации ядра с использованием расширения случайных функцийClassificationKernel
k - ближайший соседний классификаторClassificationKNN
Линейная классификационная модельClassificationLinear
Многоклассовая наивная модель БайесаClassificationNaiveBayes, CompactClassificationNaiveBayes
Классификатор нейронной сетиClassificationNeuralNetwork, CompactClassificationNeuralNetwork
Классификатор машины опорных векторов (SVM) для одноклассовой и двоичной классификацииClassificationSVM, CompactClassificationSVM
Двоичное дерево принятия решений для многоклассовой классификацииClassificationTree, CompactClassificationTree
Упакованный ансамбль деревьев решенийTreeBagger, CompactTreeBagger

Если ClassificationMdl является объектом модели, который не содержит данных предиктора (для примера, компактная модель), необходимо предоставить входной параметр Data.

plotPartialDependence не поддерживает объект модели, обученный с разреженной матрицей. Когда вы обучаете модель, используйте полную числовую матрицу или таблицу для данных предиктора, где строки соответствуют отдельным наблюдениям.

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

Одна переменная предиктора

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

Имя переменной предиктора. Имя должно совпадать с записью в RegressionMdl.PredictorNames или ClassificationMdl.PredictorNames.

Две переменные предиктора

ЗначениеОписание
вектор двух положительных целых чиселЗначения индекса, соответствующие столбцам данных предиктора.
Строковые массивы или массив ячеек векторов символов

Имена переменных предиктора. Каждый элемент массива является именем переменной. Имена должны совпадать с записями в RegressionMdl.PredictorNames или ClassificationMdl.PredictorNames.

Пример: {'x1','x3'}

Типы данных: single | double | char | string | cell

Метки класса, заданные как категориальный или символьный массив, логический или числовой вектор или массив ячеек из векторов символов. Значения и типы данных в Labels должны совпадать с именами классов в ClassNames свойство ClassificationMdl (ClassificationMdl.ClassNames).

  • Вы можете задать несколько меток классов только, когда задаете одну переменную в Vars и задайте 'Conditional' как 'none' (по умолчанию).

  • Использовать partialDependence если вы хотите вычислить частичную зависимость для нескольких переменных и нескольких меток классов в одном вызове функции.

Этот аргумент действителен только, когда вы задаете объект классификационной модели ClassificationMdl.

Пример: {'red','blue'}

Пример: ClassificationMdl.ClassNames([1 3]) задает Labels как первый и третий классы в ClassificationMdl.

Типы данных: single | double | logical | char | cell | categorical

Данные предиктора, заданные как числовая матрица или таблица. Каждая строка Data соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

Data должен соответствовать данным предиктора, которые обучили модель (RegressionMdl или ClassificationMdl), хранящийся в любом из X или Variables свойство.

  • Если вы обучили модель с помощью числовой матрицы, то Data должна быть числовой матрицей. Переменные, составляющие столбцы Data должны иметь то же число и порядок, что и переменные предиктора, которые обучили модель.

  • Если вы обучили модель с помощью таблицы (для примера Tbl), затем Data должен быть таблицей. Все переменные предиктора в Data должны иметь те же имена переменных и типы данных, что и имена и типы в Tbl. Однако порядок столбцов Data не должен соответствовать порядку столбцов Tbl.

  • plotPartialDependence не поддерживает разреженную матрицу.

Если RegressionMdl или ClassificationMdl является объектом модели, который не содержит данных предиктора, вы должны предоставить Data. Если модель является полным объектом модели, которая содержит данные предиктора, и вы задаете этот аргумент, то plotPartialDependence не использует данные предиктора в модели и использует Data только.

Типы данных: single | double | table

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: plotPartialDependence(Mdl,Vars,Data,'NumObservationsToSample',100,'UseParallel',true) создает PDP при помощи 100 выборочных наблюдений в Data и выполнение for-итерации цикла параллельно.

Тип графика, заданный как 'none', 'absolute', или 'centered'.

ЗначениеОписание
'none'

plotPartialDependence создает PDP. Тип графика зависит от количества переменных предиктора, заданных в Vars и количество меток классов, указанных в Labels (для классификационной модели).

  • Одна переменная предиктора и одна метка класса - plotPartialDependence вычисляет частичную зависимость в точках запроса и создает 2D график частичной зависимости.

  • Одна переменная предиктора и несколько меток классов - plotPartialDependence создает один рисунок, содержащий несколько 2D графики для выбранных классов.

  • Две переменные предиктора и одна метка класса - plotPartialDependence создает объемную поверхностную диаграмму частичной зависимости от двух переменных.

'absolute'

plotPartialDependence создает рисунок, включающую следующие три типа графиков:

  • PDP с красной линией

  • График поля точек выбранной переменной предиктора и предсказанных откликов или счетов с маркерами круга

  • График ДВС для каждого наблюдения с серой линией

Это значение действительно, когда вы выбираете только одну переменную предиктора в Vars и одна метка класса в Labels (для классификационной модели).

'centered'

plotPartialDependence создает рисунок, включающую те же три типа графиков, что и 'absolute'. Функция смещает графики так, чтобы все графики начинались с нуля.

Это значение действительно, когда вы выбираете только одну переменную предиктора в Vars и одна метка класса в Labels (для классификационной модели).

Пример: 'Conditional','absolute'

Флаг для включения членов взаимодействия обобщенной аддитивной модели (GAM) в расчет частичной зависимости, заданный как true или false. Этот аргумент действителен только для GAM. То есть можно задать этот аргумент только тогда, когда RegressionMdl является RegressionGAM или CompactRegressionGAM, или ClassificationMdl является ClassificationGAM или CompactClassificationGAM.

Значение по умолчанию 'IncludeInteractions' значение true если модель содержит условия взаимодействия. Значение должно быть false если модель не содержит членов взаимодействия.

Пример: 'IncludeInteractions',false

Типы данных: logical

Флаг для включения члена точки пересечения обобщенной аддитивной модели (GAM) в расчет частичной зависимости, заданный как true или false. Этот аргумент действителен только для GAM. То есть можно задать этот аргумент только тогда, когда RegressionMdl является RegressionGAM или CompactRegressionGAM, или ClassificationMdl является ClassificationGAM или CompactClassificationGAM.

Пример: 'IncludeIntercept',false

Типы данных: logical

Количество наблюдений для выборки, заданное в виде положительного целого числа. Значение по умолчанию является количеством суммарных наблюдений в Data или модель (RegressionMdl или ClassificationMdl). Если вы задаете значение, больше, чем количество суммарных наблюдений, то plotPartialDependence использует все наблюдения.

plotPartialDependence выборки без замены при помощи datasample функция и использует дискретизированные наблюдения для вычисления частичной зависимости.

plotPartialDependence Отображения незначительные отметки деления по уникальным значениям выборочных наблюдений.

Если вы задаете 'Conditional' либо как 'absolute' или 'centered', plotPartialDependence создает рисунок, включающую график ICE для каждого выбранного наблюдения.

Пример: 'NumObservationsToSample',100

Типы данных: single | double

Оси, в которых можно построить график, заданные как объект осей. Если вы не задаете оси и если текущие системы координат Декартовы, то plotPartialDependence использует текущую систему координат (gca). Если осей не существует, plotPartialDependence графики на новом рисунке.

Пример: 'Parent',ax

Точки для вычисления частичной зависимости для числовых предикторов, заданная в виде числового вектора-столбца, числовой двухколоночной матрицы или массива ячеек из двух числовых векторов-столбцов.

  • Если вы выбираете одну переменную предиктора в Vars, используйте числовой вектор-столбец.

  • Если вы выбираете две переменные предиктора в Vars:

    • Используйте числовую двухколоночную матрицу, чтобы задать одно и то же число точек для каждой переменной предиктора.

    • Используйте массив ячеек из двух числовых векторов-столбцов, чтобы задать разное число точек для каждой переменной.

Значение по умолчанию является числовым вектором-столбцом или числовой двухколоночной матрицей, в зависимости от количества выбранных переменных. Каждый столбец содержит 100 равномерно расположенных точек между минимальным и максимальным значениями выборочных наблюдений для соответствующей переменной предиктора.

Если 'Conditional' является 'absolute' или 'centered', затем программное обеспечение добавляет значения данных предиктора (Data или данные предиктора в RegressionMdl или ClassificationMdl) выбранных предикторов к точкам запроса.

Вы не можете изменять 'QueryPoints' для категориальной переменной. plotPartialDependence функция использует все категориальные значения в выбранной переменной.

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

Пример: 'QueryPoints',{pt,[]}

Типы данных: single | double | cell

Флаг для параллельного выполнения, заданный как true или false. Если вы задаете 'UseParallel',true, plotPartialDependence функция выполняет for-итерации цикла параллельно при помощи parfor при прогнозировании ответов или счетов для каждого наблюдения и усреднении их. Для этой опции требуется Parallel Computing Toolbox™.

Пример: 'UseParallel',true

Типы данных: logical

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

свернуть все

Оси графика, возвращенные как объект осей. Для получения дополнительной информации о том, как изменить внешний вид осей и извлечь данные с графиков, смотрите Внешний вид осей и Извлечь оценки частичной зависимости из графиков.

Подробнее о

свернуть все

Частичная зависимость для регрессионых моделей

Частичная зависимость [1] представляет отношения между переменными предиктора и предсказанными ответами в обученной регрессионой модели .plotPartialDependence вычисляет частичную зависимость предсказанных ответов от подмножества переменных-предикторов путем маргинализации над другими переменными.

Рассмотрим частичную зависимость от подмножества XS всего набора переменных предиктора X = {x1, x2,..., xm}. Подмножество XS включает одну переменную или две переменные: XS = {xS1} или XS = {xS1, xS2}. Пусть XC быть дополнительным множеством xS в X. Предсказанное f отклика (X) зависит от всех переменных в X:

f (X) = f (XS, XC).

Частичная зависимость предсказанных ответов от XS определяется ожиданием предсказанных ответов относительно XC:

fS(XS)=EC[f(XS,XC)]=f(XS,XC)pC(XC)dXC,

где pC (XC) - предельная вероятность XC, то есть, pC(XC)p(XS,XC)dXS. Принимая, что каждое наблюдение одинаково вероятно, и зависимость между XS и XC и взаимодействия XS и XC в откликах не сильна, plotPartialDependence оценивает частичную зависимость при помощи наблюдаемых данных предиктора следующим образом:

fS(XS)1Ni=1Nf(XS,XiC),(1)

где N - количество наблюдений и Xi = (XiS, XiC) - i-е наблюдение .

Когда вы вызываете plotPartialDependence функция, можно задать обученную модель (f(·)) и выбрать переменные (XS) при помощи входных параметров RegressionMdl и Vars, соответственно. plotPartialDependence вычисляет частичную зависимость в 100 равномерно разнесенных точках XS или точки, которые вы задаете при помощи 'QueryPoints' аргумент пары "имя-значение". Можно задать количество (N) наблюдений для выборки из данных заданного предиктора при помощи 'NumObservationsToSample' аргумент пары "имя-значение".

Индивидуальное условное ожидание для регрессионых моделей

Индивидуум условное ожидание (ICE) [2], как расширение частичной зависимости, представляет связь между переменной предиктора и предсказанными ответами для каждого наблюдения. В то время как частичная зависимость показывает усредненную связь между переменными предиктора и предсказанными откликами, набор графиков ICE дезагрегирует усредненную информацию и показывает индивидуальную зависимость для каждого наблюдения.

plotPartialDependence создает график ICE для каждого наблюдения. Набор графиков ICE полезен для исследования неоднородностей частичной зависимости, происходящей из различных наблюдений. plotPartialDependence можно также создать графики ICE с любыми данными предиктора, предоставленными через входной параметр Data. Можно использовать эту функцию для исследования предсказанного пространства отклика.

Рассмотрим график ICE для выбранной переменной предиктора xS с заданным наблюдением XiC, где XS = {xS}, XC является дополнительным множеством xS во всем наборе переменных X, и Xi = (XiS, XiC) - i-е наблюдение. График ICE соответствует совокупности суммирования в  Уравнении 1:

fSi(XS)=f(XS,XiC).

plotPartialDependence графики fSi(XS) для каждого i наблюдения, когда вы задаете 'Conditional' как 'absolute'. Если вы задаете 'Conditional' как 'centered', plotPartialDependence рисует все графики после удаления эффектов уровня из-за различных наблюдений:

fSi,centered(XS)=f(XS,XiC)f(min(XS),XiC).

Это вычитание гарантирует, что каждый график начинается с нуля, так что вы можете изучить совокупный эффект XS и взаимодействия между XS и XC.

Частичная зависимость и ДВС для классификационных моделей

В случае классификационных моделей, plotPartialDependence вычисляет частичную зависимость и индивидуальное условное ожидание так же, как и для регрессионых моделей, за одним исключением: вместо использования предсказанных ответов от модели функция использует предсказанные счета для классов, заданных в Labels.

Алгоритм взвешенного обхода

Взвешенный алгоритм обхода [1] является методом для оценки частичной зависимости для древовидной модели. Предполагаемая частичная зависимость является взвешенным средним значением отклика или значений баллов, соответствующей узлам листа, посещаемым во время обхода дерева.

Пусть XS быть подмножеством всего набора переменных X и XC быть дополнительным множеством xS в X. Для каждого XS Значение вычислить частичную зависимость, алгоритм пересекает дерево от корневого (начального) узла вниз до листовых (терминальных) узлов и находит веса листовых узлов. Обход начинается с присвоения значения веса единице в корневом узле. Если узел разделяется на XSалгоритм переходит к соответствующему дочернему узлу в зависимости от XS значение. Вес дочернего узла становится таким же, значение и его родительский узел. Если узел разделяется на XCалгоритм переходит к обоим дочерним узлам. Вес каждого дочернего узла становится значением его родительского узла, умноженным на долю наблюдений, соответствующих каждому дочернему узлу. После завершения обхода дерева алгоритм вычисляет взвешенное среднее значение с помощью присвоенных весов.

Для ансамбля мешанных деревьев предполагаемая частичная зависимость представляет собой среднее значение средневзвешенных средних значений по отдельным деревьям.

Алгоритмы

plotPartialDependence использует predict функция для предсказания ответов или счетов. plotPartialDependence выбирает нужное predict функция согласно модели (RegressionMdl или ClassificationMdl) и запускается predict с настройками по умолчанию. Для получения дополнительной информации о каждом predict function, см. predict функционирует в следующих двух таблицах. Если заданная модель является древовидной моделью (не включая усиленный ансамбль деревьев) и 'Conditional' является 'none', затем plotPartialDependence использует взвешенный алгоритм обхода вместо predict функция. Для получения дополнительной информации смотрите Взвешенный алгоритм обхода.

Объект модели

Тип моделиПолная или компактная регрессия Объекта моделиФункция для предсказания ответов
Агрегация Bootstrap для ансамбля деревьев принятия решенийCompactTreeBaggerpredict
Агрегация Bootstrap для ансамбля деревьев принятия решенийTreeBaggerpredict
Ансамбль регрессионных моделейRegressionEnsemble, RegressionBaggedEnsemble, CompactRegressionEnsemblepredict
Гауссовская регрессионая модель ядра с использованием расширения случайных функцийRegressionKernelpredict
Регрессия Гауссова процессаRegressionGP, CompactRegressionGPpredict
Обобщенная аддитивная модельRegressionGAM, CompactRegressionGAMpredict
Обобщенная линейная модель смешанного эффектаGeneralizedLinearMixedModelpredict
Обобщенная линейная модельGeneralizedLinearModel, CompactGeneralizedLinearModelpredict
Линейная модель смешанного эффектаLinearMixedModelpredict
Линейная регрессияLinearModel, CompactLinearModelpredict
Линейная регрессия для высоко-размерных данныхRegressionLinearpredict
Модель регрессии нейронной сетиRegressionNeuralNetwork, CompactRegressionNeuralNetworkpredict
Нелинейная регрессияNonLinearModelpredict
Дерево регрессииRegressionTree, CompactRegressionTreepredict
Поддерживайте векторную машинуRegressionSVM, CompactRegressionSVMpredict

Объект модели

Тип моделиПолный или компактный объект классификационной моделиФункция для предсказания меток и счетов
Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminantpredict
Многоклассовая модель для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOCpredict
Ансамбль учащихся по классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemblepredict
Гауссовская модель классификации ядра с использованием расширения случайных функцийClassificationKernelpredict
Обобщенная аддитивная модельClassificationGAM, CompactClassificationGAMpredict
k - ближайшая соседняя модельClassificationKNNpredict
Линейная классификационная модельClassificationLinearpredict
Наивная модель БайесаClassificationNaiveBayes, CompactClassificationNaiveBayespredict
Классификатор нейронной сетиClassificationNeuralNetwork, CompactClassificationNeuralNetworkpredict
Поддерживайте векторную машину для одноклассовой и двоичной классификацииClassificationSVM, CompactClassificationSVMpredict
Двоичное дерево принятия решений для многоклассовой классификацииClassificationTree, CompactClassificationTreepredict
Упакованный ансамбль деревьев решенийTreeBagger, CompactTreeBaggerpredict

Альтернативная функциональность

  • partialDependence вычисляет частичную зависимость без визуализации. Функция может вычислить частичную зависимость для двух переменных и нескольких классов в одном вызове функции.

Ссылки

[1] Фридман, Джером. H. «Жадное приближение функций: градиентная бустинговая машина». Анналы статистики 29, № 5 (2001): 1189-1232.

[2] Голдштейн, Алекс, Адам Капельнер, Джастин Блейх и Эмиль Питкин. Peeking Inside the Black Box: Visualizing Statistical Learning with Plots of Individual Conditional Development (неопр.) (недоступные графики). Журнал вычислительно-графической статистики 24, № 1 (2 января 2015): 44-65.

[3] Хасти, Тревор, Роберт Тибширани и Джером Фридман. Элементы статистического обучения. Нью-Йорк, Нью-Йорк: Спрингер Нью-Йорк, 2001.

Расширенные возможности

Введенный в R2017b