Край классификации для обобщенной аддитивной модели (GAM)
возвращает границу классификации (e = edge(Mdl,Tbl,ResponseVarName)e) для обобщенной аддитивной модели Mdl использование данных предиктора в Tbl и метки истинного класса в Tbl.ResponseVarName.
указывает параметры, использующие один или несколько аргументов «имя-значение» в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно задать веса наблюдения и включить ли в вычисления элементы взаимодействия.e = edge(___,Name,Value)
Оценка полей классификации тестового образца и края обобщенной аддитивной модели. Поля тестовой выборки представляют собой наблюдаемые оценки истинного класса минус оценки ложного класса, а край тестовой выборки представляет собой среднее значение полей.
Загрузить fisheriris набор данных. Создать X в качестве числовой матрицы, которая содержит два сепальных и два лепестковых измерения для versicolor и virginica ирисов. Создать Y как клеточный массив характерных векторов, который содержит соответствующие виды радужки.
load fisheriris inds = strcmp(species,'versicolor') | strcmp(species,'virginica'); X = meas(inds,:); Y = species(inds,:);
Случайное разделение наблюдений на обучающий набор и тестовый набор со стратификацией с использованием информации о классе в Y. Укажите 30% образец хранения для тестирования.
rng('default') % For reproducibility cv = cvpartition(Y,'HoldOut',0.30);
Извлеките показатели обучения и тестирования.
trainInds = training(cv); testInds = test(cv);
Укажите наборы данных обучения и тестирования.
XTrain = X(trainInds,:); YTrain = Y(trainInds); XTest = X(testInds,:); YTest = Y(testInds);
Обучение GAM с использованием предикторов XTrain и метки классов YTrain. Рекомендуется указывать имена классов.
Mdl = fitcgam(XTrain,YTrain,'ClassNames',{'versicolor','virginica'});
Mdl является ClassificationGAM объект модели.
Оценка полей и краев классификации тестовых образцов.
m = margin(Mdl,XTest,YTest); e = edge(Mdl,XTest,YTest)
e = 0.8000
Отображение гистограммы полей классификации тестовых образцов.
histogram(m,length(unique(m)),'Normalization','probability') xlabel('Test Sample Margins') ylabel('Probability') title('Probability Distribution of the Test Sample Margins')

Оценка весового края тестовой выборки (средневзвешенное значение полей) обобщенной аддитивной модели.
Загрузить fisheriris набор данных. Создать X в качестве числовой матрицы, которая содержит два сепальных и два лепестковых измерения для versicolor и virginica ирисов. Создать Y как клеточный массив характерных векторов, который содержит соответствующие виды радужки.
load fisheriris idx1 = strcmp(species,'versicolor') | strcmp(species,'virginica'); X = meas(idx1,:); Y = species(idx1,:);
Предположим, что качество некоторых измерений ниже, потому что они были измерены с помощью старой технологии. Чтобы смоделировать этот эффект, добавьте шум к случайному подмножеству из 20 измерений.
rng('default') % For reproducibility idx2 = randperm(size(X,1),20); X(idx2,:) = X(idx2,:) + 2*randn(20,size(X,2));
Случайное разделение наблюдений на обучающий набор и тестовый набор со стратификацией с использованием информации о классе в Y. Укажите 30% образец хранения для тестирования.
cv = cvpartition(Y,'HoldOut',0.30);Извлеките показатели обучения и тестирования.
trainInds = training(cv); testInds = test(cv);
Укажите наборы данных обучения и тестирования.
XTrain = X(trainInds,:); YTrain = Y(trainInds); XTest = X(testInds,:); YTest = Y(testInds);
Обучение GAM с использованием предикторов XTrain и метки классов YTrain. Рекомендуется указывать имена классов.
Mdl = fitcgam(XTrain,YTrain,'ClassNames',{'versicolor','virginica'});
Mdl является ClassificationGAM объект модели.
Оцените край тестового образца.
e = edge(Mdl,XTest,YTest)
e = 0.8000
Средний запас составляет примерно 0,80.
Одним из способов уменьшения влияния шумных измерений является назначение им меньшего веса, чем другим наблюдениям. Определите весовой вектор, который обеспечивает более высокое качество наблюдений в два раза больше веса других наблюдений.
n = size(X,1); weights = ones(size(X,1),1); weights(idx2) = 0.5; weightsTrain = weights(trainInds); weightsTest = weights(testInds);
Обучение GAM с использованием предикторов XTrain, метки классов YTrain, и веса weightsTrain.
Mdl_W = fitcgam(XTrain,YTrain,'Weights',weightsTrain,... 'ClassNames',{'versicolor','virginica'});
Оценка взвешенного края тестовой выборки с использованием схемы взвешивания.
e_W = edge(Mdl_W,XTest,YTest,'Weights',weightsTest)e_W = 0.8770
Средневзвешенная маржа составляет приблизительно 0,88. Этот результат показывает, что в среднем метки из взвешенных меток классификатора имеют более высокую достоверность.
Сравните GAM с линейными элементами с GAM с линейными элементами и элементами взаимодействия, изучив поля и край тестовой выборки. Исходя исключительно из этого сравнения, классификатор с наибольшими полями и краями является лучшей моделью.
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, либо плохой ('b') или хорошо ('g').
load ionosphereСлучайное разделение наблюдений на обучающий набор и тестовый набор со стратификацией с использованием информации о классе в Y. Укажите 30% образец хранения для тестирования.
rng('default') % For reproducibility cv = cvpartition(Y,'Holdout',0.30);
Извлеките показатели обучения и тестирования.
trainInds = training(cv); testInds = test(cv);
Укажите наборы данных обучения и тестирования.
XTrain = X(trainInds,:); YTrain = Y(trainInds); XTest = X(testInds,:); YTest = Y(testInds);
Обучайте GAM, который содержит как линейные, так и условия взаимодействия для предикторов. Укажите, чтобы включить все доступные термины взаимодействия, значения p которых не превышают 0,05.
Mdl = fitcgam(XTrain,YTrain,'Interactions','all','MaxPValue',0.05)
Mdl =
ClassificationGAM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'logit'
Intercept: 3.0398
Interactions: [561x2 double]
NumObservations: 246
Properties, Methods
Mdl является ClassificationGAM объект модели. Mdl включает все доступные термины взаимодействия.
Оценить границы и границы тестового образца для Mdl.
M = margin(Mdl,XTest,YTest); E = edge(Mdl,XTest,YTest)
E = 0.7848
Оценить границы и границы тестового образца для Mdl без включения условий взаимодействия.
M_nointeractions = margin(Mdl,XTest,YTest,'IncludeInteractions',false); E_nointeractions = edge(Mdl,XTest,YTest,'IncludeInteractions',false)
E_nointeractions = 0.7871
Отображение распределений полей с помощью оконных графиков.
boxplot([M M_nointeractions],'Labels',{'Linear and Interaction Terms','Linear Terms Only'}) title('Box Plots of Test Sample Margins')

Края M и M_nointeractions имеют аналогичное распределение, но край тестовой выборки классификатора только с линейными членами больше. Предпочтительны классификаторы, дающие относительно большую маржу.
Mdl - Обобщенная аддитивная модельClassificationGAM объект модели | CompactClassificationGAM объект моделиОбобщенная аддитивная модель, указанная как ClassificationGAM или CompactClassificationGAM объект модели.
Tbl - Образцы данныхОбразец данных, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.
Tbl должен содержать все предикторы, используемые для обучения Mdl. Дополнительно, Tbl может содержать столбец для переменной ответа и столбец для весов наблюдения.
Переменная ответа должна иметь тот же тип данных, что и Mdl.Y. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.) Если переменная ответа в Tbl имеет то же имя, что и переменная ответа, используемая для обучения Mdl, то указывать не нужно ResponseVarName.
Весовые значения должны быть числовым вектором. Необходимо указать веса наблюдения в Tbl с помощью 'Weights'.
Если вы тренировались Mdl используя образцы данных, содержащиеся в таблице, затем входные данные для edge также должен находиться в таблице.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя ответной переменной, указанное как вектор символов или строковый скаляр, содержащий имя ответной переменной в Tbl. Например, если переменная ответа Y хранится в Tbl.Y, затем укажите его как 'Y'.
Типы данных: char | string
Y - Этикетки классовМетки класса, указанные как категориальный, символьный или строковый массив, логический или числовой вектор или массив ячеек символьных векторов. Каждая строка Y представляет классификацию соответствующей строки X или Tbl.
Y должен иметь тот же тип данных, что и Mdl.Y. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)
Типы данных: single | double | categorical | logical | char | string | cell
X - Данные предиктораДанные предиктора, заданные как числовая матрица. Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной.
Если вы тренировались Mdl используя данные выборки, содержащиеся в матрице, затем входные данные для edge также должен быть в матрице.
Типы данных: single | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'IncludeInteractions',false,'Weights',w определяет исключение терминов взаимодействия из модели и использование весов наблюдения w.'IncludeInteractions' - Флаг для включения терминов взаимодействияtrue | falseФлаг для включения условий взаимодействия модели, указанный как true или false.
Дефолт 'IncludeInteractions' значение равно true если Mdl содержит термины взаимодействия. Значение должно быть false если модель не содержит терминов взаимодействия.
Пример: 'IncludeInteractions',false
Типы данных: logical
'Weights' - Наблюдательные весаones(size(X,1),1) (по умолчанию) | вектор скалярных значений | имя переменной в TblВеса наблюдения, заданные как вектор скалярных значений или имя переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится в Tbl.W, затем укажите его как 'W'.
edge нормализует веса в каждом классе для суммирования со значением предшествующей вероятности соответствующего класса.
Типы данных: single | double | char | string
Край классификации - это средневзвешенное значение полей классификации.
Один из способов выбора из нескольких классификаторов, например, выбор элемента, - выбор классификатора, который дает наибольший край.
Поле классификации для двоичной классификации является для каждого наблюдения разницей между оценкой классификации для истинного класса и оценкой классификации для ложного класса.
Если поля находятся на одной шкале (то есть значения баллов основаны на одном и том же преобразовании баллов), то они служат в качестве показателя достоверности классификации. Среди нескольких классификаторов лучше те, которые дают большую маржу.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.