exponenta event banner

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. x-axis минорные засечки представляют уникальные значения в 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 экземпляров от каждого из трёх видов: сетоза, версиколор и 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.

Обучение ансамбля классификационных моделей и создание двух 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 функции. 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. 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 соответствуют графикам ДВС. 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
Объединение начальной загрузки для ансамбля деревьев принятия решений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 вычисляет частичную зависимость в точках запроса и создает график 2-D линии частичной зависимости.

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

  • Две прогнозирующие переменные и одна метка класса - 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

Типы данных: 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 при прогнозировании ответов или баллов для каждого наблюдения и усреднении их. Для этого параметра требуется 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) ≈1N∑i=1Nf (XS, XC),(1)

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

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

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

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

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

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

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

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

fSi, центрированный (XS) = f (XS, XC) f (мин (XS), XC).

Это вычитание гарантирует, что каждый график начинается с нуля, так что можно изучить совокупный эффект 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
Многоклассовая модель для поддержки векторных машин или других классификаторов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] Голдштейн, Алекс, Адам Капельнер, Джастин Блейх и Эмиль Питкин. «Заглядывание внутрь черного ящика: визуализация статистического обучения с помощью графиков индивидуального условного ожидания». Журнал вычислительной и графической статистики 24, № 1 (2 января 2015 г.): 44-65.

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

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

Представлен в R2017b