plotPartialDependence

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

Описание

пример

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. x- ось незначительные метки деления представляет уникальные значения в x1.

Средство просмотра дерева регрессии показывает, что первое решение состоит в том ли x1 меньше, чем 3 085,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 экземпляров от каждой из трех разновидностей: setosa, versicolor, и virginica.

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.

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

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

Загрузите 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). Создайте PDPs для 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. 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 соответствуйте графикам ICE. XData и YData значения ax.Children(i) значения оси X (выбранные значения предиктора) и значения оси Y (соответствующие частичные значения зависимости), соответственно.

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

свернуть все

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

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

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

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

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

МодельОбъект полной или компактной модели
Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminant
Модель Multiclass для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOC
Ансамбль учеников для классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemble
Обобщенная аддитивная модель (GAM)ClassificationGAM, CompactClassificationGAM
Гауссова модель классификации ядер использование случайного расширения функцииClassificationKernel
k- соседний классификаторClassificationKNN
Линейная модель классификацииClassificationLinear
Мультикласс наивная модель BayesClassificationNaiveBayes, 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 с красной линией

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

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

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

'centered'

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

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

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

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

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

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

Типы данных: логический

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

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

Типы данных: логический

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

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

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

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

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

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

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

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

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

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

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

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

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

Значением по умолчанию является числовой вектор-столбец или числовая матрица 2D столбца, в зависимости от количества выбранных переменных предикторов. Каждый столбец содержит 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

Типы данных: логический

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

свернуть все

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

Больше о

свернуть все

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

Частичная зависимость [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 th наблюдение.

Когда вы вызываете 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 th наблюдение. График ICE соответствует слагаемому суммирования в  уравнении 1:

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

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

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

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

Частичная зависимость и ICE для моделей классификации

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

Взвешенный пересекающийся алгоритм

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

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

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

Алгоритмы

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

Объект модели регрессии

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

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

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

Ссылки

[1] Фридман, Джером. H. “Жадное Приближение функций: Машина Повышения Градиента”. Летопись Статистики 29, № 5 (2001): 1189-1232.

[2] Голдстайн, Алекс, Адам Кэпелнер, Джастин Блейч и Эмиль Питкин. “Посмотрев В Черном квадрате: Визуализация Статистического Изучения с Графиками Отдельного Условного Ожидания”. Журнал Вычислительной и Графической Статистики 24, № 1 (2 января 2015): 44–65.

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

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

Введенный в R2017b