Постройте график локальных эффектов терминов в обобщенной аддитивной модели (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,:))
The predict
функция классифицирует первые X(1,:)
наблюдения как
'g'
. The 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 переменных с информацией о продажах недвижимости в Нью-Йорке в 2015 году. Этот пример использует эти переменные для анализа продажных цен (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)
The predict
функция предсказывает цену продажи для первого наблюдения следующим 4.4421e5
. The 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
Типы данных: logical
'IncludeIntercept'
- Флаг для включения термина точки пересеченияfalse
(по умолчанию) | true
Флаг для включения в график термина точки пересечения модели, заданный как true
или false
.
Пример: 'IncludeIntercept',true
Типы данных: logical
'NumTerms'
- Количество терминов для построения графикаmin(M,10)
где M
количество членов в Mdl
(по умолчанию) | положительный целочисленный скалярКоличество членов для построения, заданное как положительный целочисленный скаляр. plotLocalEffects
строит графики заданного количества членов с наивысшими абсолютными локальными значениями эффекта.
Пример: 'NumTerms',5
задает график для пяти наиболее важных терминов. plotLocalEffects
определяет порядок важности при помощи абсолютных локальных значений эффекта.
Типы данных: single
| double
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.