exponenta event banner

край

Классификационные поля для обобщенной аддитивной модели (GAM)

    Описание

    m = margin(Mdl,Tbl,ResponseVarName) возвращает поле классификации (m) для обобщенной аддитивной модели Mdl использование данных предиктора в Tbl и метки истинного класса в Tbl.ResponseVarName.

    m возвращается в виде вектора числового столбца n-by-1, где n - количество наблюдений в данных предиктора.

    m = margin(Mdl,Tbl,Y) использует данные предиктора в таблице Tbl и метки истинного класса в Y.

    пример

    m = margin(Mdl,X,Y) использует данные предиктора в матрице X и метки истинного класса в Y.

    пример

    m = margin(___,'IncludeInteractions',includeInteractions) указывает, следует ли включать в вычисления элементы взаимодействия. Можно указать includeInteractions в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах.

    Примеры

    свернуть все

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

    Загрузить 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')

    Figure contains an axes. The axes with title Probability Distribution of the Test Sample Margins contains an object of type histogram.

    Сравните 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')

    Figure contains an axes. The axes with title Box Plots of Test Sample Margins contains 14 objects of type line.

    Края M и M_nointeractions имеют аналогичное распределение, но край тестовой выборки классификатора только с линейными членами больше. Предпочтительны классификаторы, дающие относительно большую маржу.

    Входные аргументы

    свернуть все

    Обобщенная аддитивная модель, указанная как ClassificationGAM или CompactClassificationGAM объект модели.

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

    • Если вы тренировались Mdl используя данные выборки, содержащиеся в матрице, затем входные данные для margin также должен быть в матрице (X).

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

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

    • Переменная ответа должна иметь тот же тип данных, что и Mdl.Y. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.) Если переменная ответа в Tbl имеет то же имя, что и переменная ответа, используемая для обучения Mdl, то указывать не нужно ResponseVarName.

    • Весовые значения должны быть числовым вектором. Необходимо указать веса наблюдения в Tbl с помощью 'Weights'.

    Если вы тренировались Mdl используя образцы данных, содержащиеся в таблице, затем входные данные для margin также должен находиться в таблице.

    Типы данных: table

    Имя ответной переменной, указанное как вектор символов или строковый скаляр, содержащий имя ответной переменной в Tbl. Например, если переменная ответа Y хранится в Tbl.Y, затем укажите его как 'Y'.

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

    Метки класса, указанные как категориальный, символьный или строковый массив, логический или числовой вектор или массив ячеек символьных векторов. Каждая строка Y представляет классификацию соответствующей строки X или Tbl.

    Y должен иметь тот же тип данных, что и Mdl.Y. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)

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

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

    Если вы тренировались Mdl используя данные выборки, содержащиеся в матрице, затем входные данные для margin также должен быть в матрице.

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

    Флаг для включения условий взаимодействия модели, указанный как true или false.

    Дефолт includeInteractions значение равно true если Mdl содержит термины взаимодействия. Значение должно быть false если модель не содержит терминов взаимодействия.

    Типы данных: logical

    Подробнее

    свернуть все

    Маржа классификации

    Поле классификации для двоичной классификации является для каждого наблюдения разницей между оценкой классификации для истинного класса и оценкой классификации для ложного класса.

    Если поля находятся на одной шкале (то есть значения баллов основаны на одном и том же преобразовании баллов), то они служат в качестве показателя достоверности классификации. Среди нескольких классификаторов лучше те, которые дают большую маржу.

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