Постройте локальные эффекты условий в обобщенной аддитивной модели (GAM)
plotLocalEffects(
создает столбчатый график, показывающий локальные эффекты условий в обобщенной аддитивной модели Mdl
,queryPoint
)Mdl
на предсказании в заданной точке запроса queryPoint
.
plotLocalEffects(
задает дополнительные опции с помощью одного или нескольких аргументов значения имени. Например, Mdl
,queryPoint
,Name,Value
)'IncludeIntercept',true
задает, чтобы включать термин точки пересечения в столбчатом графике.
b
= plotLocalEffects(___)
возвращает объект b
столбчатого графика использование любой из комбинаций входных аргументов в предыдущих синтаксисах. Используйте
b
запросить или изменить Свойства панели столбчатого графика после того, как это создается.
Обучите одномерную обобщенную аддитивную модель классификации, которая содержит линейные члены для предикторов. Классифицируйте новое наблюдение с помощью эффективного памятью объекта модели. Затем интерпретируйте предсказание для заданного экземпляра данных при помощи plotLocalEffects
функция.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Обучите одномерный GAM, который идентифицирует, плох ли радарный возврат ('b'
) или хороший ('g'
).
Mdl = fitcgam(X,Y);
Mdl
ClassificationGAM
объект модели.
Сохраните память путем сокращения размера обученной модели.
CMdl = compact(Mdl);
Классифицируйте первое наблюдение за обучающими данными и постройте локальные эффекты условий в Mdl
на предсказании.
label = predict(CMdl,X(1,:))
label = 1x1 cell array
{'g'}
plotLocalEffects(CMdl,X(1,:))
predict
функция классифицирует первое наблюдение X(1,:)
как 'g'
. plotLocalEffects
функция создает горизонтальный столбчатый график, который показывает локальные эффекты 10 самых важных условий на предсказании. Каждое локальное значение эффекта показывает вклад каждого термина к классификационной оценке для 'g'
, который является логитом апостериорной вероятности, что классификацией является 'g'
для наблюдения.
Обучите GAM бинарной классификации и с линейными членами и с периоды взаимодействия для предикторов. Создайте локальный график эффектов, использующий и линейные термины и периоды взаимодействия в модели, и затем создайте график с помощью только линейные термины в модели. Задайте, включать ли периоды взаимодействия при создании локального графика эффектов.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Обучите GAM с помощью предикторов X
и класс маркирует Y
. Методические рекомендации должны задать имена классов. Задайте, чтобы включать 10 самых важных периодов взаимодействия.
Mdl = fitcgam(X,Y,'ClassNames',{'b','g'},'Interactions',10);
Mdl
ClassificationGAM
объект модели.
Создайте локальные графики эффектов для 10-го наблюдения. Используйте и линейные термины и периоды взаимодействия в Mdl
для первого графика, и используют только линейные термины в Mdl
для второго графика. Чтобы исключить периоды взаимодействия, задайте 'IncludeInteractions',false
.
t = tiledlayout(2,1); title(t,'Local Effects Plots for 10th Observation') nexttile plotLocalEffects(Mdl,X(10,:)) title('GAM with linear and interaction terms') nexttile plotLocalEffects(Mdl,X(10,:),'IncludeInteractions',false) title('GAM with only linear terms')
Графики отображают 10 самых важных условий. Оба графика включают девять распространенных слов и один редкий термин. Первый график включает период взаимодействия для x1
и x5
, тогда как второй график включает линейный член для x14
.
Обучите одномерный GAM регрессии, которая содержит линейные члены для предикторов. Затем интерпретируйте предсказание для заданного экземпляра данных при помощи plotLocalEffects
функция.
Загрузите набор данных NYCHousing2015
.
load NYCHousing2015
Набор данных включает 10 переменных с информацией о продажах свойств в Нью-Йорке в 2 015. Этот пример использует эти переменные, чтобы анализировать отпускные цены (SALEPRICE
).
Предварительно обработайте набор данных. Удалите выбросы, преобразуйте datetime
массив (SALEDATE
) к числам месяца и перемещению переменная отклика (SALEPRICE
) к последнему столбцу.
idx = isoutlier(NYCHousing2015.SALEPRICE); NYCHousing2015(idx,:) = []; NYCHousing2015.SALEDATE = month(NYCHousing2015.SALEDATE); NYCHousing2015 = movevars(NYCHousing2015,'SALEPRICE','After','SALEDATE');
Отобразите первые три строки таблицы.
head(NYCHousing2015,3)
ans=3×10 table
BOROUGH NEIGHBORHOOD BUILDINGCLASSCATEGORY RESIDENTIALUNITS COMMERCIALUNITS LANDSQUAREFEET GROSSSQUAREFEET YEARBUILT SALEDATE SALEPRICE
_______ ____________ ____________________________ ________________ _______________ ______________ _______________ _________ ________ _________
2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 0 4750 2619 1899 8 0
2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 0 4750 2619 1899 8 0
2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 1 1287 2528 1899 12 0
Обучите одномерный GAM отпускным ценам. Задайте переменные для BOROUGH
, NEIGHBORHOOD
, BUILDINGCLASSCATEGORY
, и SALEDATE
как категориальные предикторы.
Mdl = fitrgam(NYCHousing2015,'SALEPRICE','CategoricalPredictors',[1 2 3 9]);
Mdl
RegressionGAM
объект модели.
Отобразите предполагаемую точку пересечения (постоянный) термин Mdl
.
Mdl.Intercept
ans = 3.7518e+05
Значением термина точки пересечения является близко к среднему значению переменной отклика в регрессии GAM, если обучающие данные не включают NaN
значения. Вычислите среднее значение переменной отклика.
mean(NYCHousing2015.SALEPRICE)
ans = 3.7518e+05
Предскажите отпускную цену за первое наблюдение за обучающими данными и постройте локальные эффекты условий в Mdl
на предсказании. Задайте 'IncludeIntercept',true
включать термин точки пересечения в графике.
yFit = predict(Mdl,NYCHousing2015(1,:))
yFit = 4.4421e+05
plotLocalEffects(Mdl,NYCHousing2015(1,:),'IncludeIntercept',true)
predict
функция предсказывает отпускную цену за первое наблюдение как 4.4421e5
. plotLocalEffects
функция создает горизонтальный столбчатый график, который показывает локальные эффекты условий в Mdl
на предсказании. Каждое локальное значение эффекта показывает вклад каждого термина к предсказанной отпускной цене.
Mdl
— Обобщенная аддитивная модельClassificationGAM
объект модели | CompactClassificationGAM
объект модели | RegressionGAM
объект модели | CompactRegressionGAM
объект моделиОбобщенная аддитивная модель в виде ClassificationGAM
, CompactClassificationGAM
, RegressionGAM
, или CompactRegressionGAM
объект модели.
queryPoint
— Точка запросаТочка запроса, в который plotLocalEffects
строит локальные эффекты в виде вектора-строки из числовых значений или таблицы одной строки.
Для вектора-строки из числовых значений:
Переменные, который составляет столбцы queryPoint
должен иметь тот же порядок как переменные предикторы, которые обучили Mdl
.
Если вы обучили Mdl
с помощью таблицы (например, Tbl
), затем queryPoint
может быть числовая матрица если Tbl
содержит все числовые переменные.
Для таблицы одной строки:
Если вы обучили Mdl
с помощью таблицы (например, Tbl
), затем все переменные предикторы в queryPoint
должен иметь те же имена переменных и типы данных как те в Tbl
. Однако порядок следования столбцов queryPoint
не должен соответствовать порядку следования столбцов Tbl
.
Если вы обучили Mdl
с помощью числовой матрицы затем предиктор называет в Mdl.PredictorNames
и соответствующий переменный предиктор называет в queryPoint
должно быть то же самое. Чтобы задать имена предиктора во время обучения, используйте 'PredictorNames'
аргумент значения имени. Все переменные предикторы в queryPoint
должны быть числовые векторы.
queryPoint
может содержать дополнительные переменные (переменные отклика, веса наблюдения, и так далее), но plotLocalEffects
игнорирует их.
plotLocalEffects
не поддерживает многостолбцовые переменные или массивы ячеек кроме массивов ячеек из символьных векторов.
Типы данных: single
| double
| table
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
plotLocalEffects(Mdl,queryPoint,'IncludeInteractions',false,'NumTerms',5)
задает, чтобы создать столбиковую диаграмму, содержащую пять самых важных линейных членов для предикторов в Mdl
исключая периоды взаимодействия в Mdl
.'IncludeInteractions'
— Отметьте, чтобы включать периоды взаимодействияtrue
| false
Отметьте, чтобы включать периоды взаимодействия модели в графике в виде true
или false
.
'IncludeInteractions'
по умолчанию значением является
true
если Mdl
содержит периоды взаимодействия. Значением должен быть false
если модель не содержит периоды взаимодействия.
Пример: 'IncludeInteractions',false
Типы данных: логический
'IncludeIntercept'
— Отметьте, чтобы включать термин точки пересеченияfalse
(значение по умолчанию) | true
Отметьте, чтобы включать термин точки пересечения модели в графике в виде true
или false
.
Пример: 'IncludeIntercept',true
Типы данных: логический
'NumTerms'
— Количество условий, чтобы построитьmin(M,10)
где M
количество условий в Mdl
(значение по умолчанию) | положительный целочисленный скалярКоличество условий, чтобы построить в виде положительного целочисленного скаляра. plotLocalEffects
строит конкретное количество условий с самыми высокими абсолютными локальными значениями эффекта.
Пример: 'NumTerms',5
задает, чтобы построить пять самых важных условий. plotLocalEffects
определяет порядок важности при помощи абсолютных локальных значений эффекта.
Типы данных: single
| double
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.