plotPartialDependence

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

Описание

пример

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

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

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

пример

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

  • Если вы задаете одну переменную в 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')

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

plotPartialDependence(Mdl,1)

Построенная линия представляет усредненные частичные отношения между 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);

Согласно этой модели, вероятности 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')

Когда '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 = 2×1 categorical
     <=50K 
     >50K 

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

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

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

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

Два графика показывают подобные формы для частичной зависимости предсказанного счета высокого 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

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

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

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

Обучите модель регрессии машины опорных векторов (SVM) использование carsmall набор данных, и создает PDP для двух переменных предикторов. Затем извлеките частичные оценки зависимости из выхода plotPartialDependence. В качестве альтернативы можно получить частичные значения зависимости при помощи 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

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 (соответствующие частичные значения зависимости), соответственно.

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

свернуть все

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

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

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

Объект модели классификации

МодельПолный или компактный объект модели классификации
Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminant
Модель Multiclass для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOC
Ансамбль учеников для классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemble
Гауссова модель классификации ядер использование случайного расширения функцииClassificationKernel
k- соседний классификаторClassificationKNN
Линейная модель классификацииClassificationLinear
Мультикласс наивная модель BayesClassificationNaiveBayes, CompactClassificationNaiveBayes
Классификатор машины опорных векторов для и бинарной классификации одного классаClassificationSVM, CompactClassificationSVM
Дерево выбора из двух альтернатив для классификации мультиклассовClassificationTree, CompactClassificationTree
Уволенный ансамбль деревьев решенийTreeBagger, CompactTreeBagger

Если Mdl объект компактной модели, необходимо предоставить входному параметру Data.

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

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

Один переменный предиктор

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

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

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

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

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

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

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

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

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

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

Этот аргумент допустим только когда Mdl объект модели классификации.

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

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

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

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

Data должно быть сопоставимо с данными о предикторе, которые обучили Mdl, сохраненный в любом Mdl.X или Mdl.Variables.

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

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

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

Если Mdl объект компактной модели, необходимо обеспечить Data. Если Mdl полный объект модели, который содержит данные о предикторе, и вы задаете этот аргумент, затем plotPartialDependence не использует данные о предикторе в Mdl и использование 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- итерации цикла параллельно.

Постройте тип в виде разделенной запятой пары, состоящей из 'Conditional' и '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'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: '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) при помощи входных параметров Mdl и 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 функция согласно Mdl и запуски predict с его настройками по умолчанию. Для получения дополнительной информации о каждом predict функционируйте, смотрите predict функции в следующих двух таблицах. Если Mdl основанная на дереве модель (не включая повышенный ансамбль деревьев) и 'Conditional' 'none'то plotPartialDependence использует взвешенный пересекающийся алгоритм вместо predict функция. Для получения дополнительной информации см. Взвешенный Пересекающийся Алгоритм.

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

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

Объект модели классификации

Тип моделиПолный или компактный объект модели классификацииФункция, чтобы предсказать метки и баллы
Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminantpredict
Модель Multiclass для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOCpredict
Ансамбль учеников для классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemblepredict
Гауссова модель классификации ядер использование случайного расширения функцииClassificationKernelpredict
k- соседний классификаторClassificationKNNpredict
Линейная модель классификацииClassificationLinearpredict
Мультикласс наивная модель BayesClassificationNaiveBayes, CompactClassificationNaiveBayespredict
Классификатор машины опорных векторов для и бинарной классификации одного класса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