exponenta event banner

край

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

    Описание

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

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

    пример

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

    пример

    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')

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

    Оценка весового края тестовой выборки (средневзвешенное значение полей) обобщенной аддитивной модели.

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

    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 используя образцы данных, содержащиеся в таблице, затем входные данные для edge также должен находиться в таблице (Tbl).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

    Пример: 'IncludeInteractions',false,'Weights',w определяет исключение терминов взаимодействия из модели и использование весов наблюдения w.

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

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

    Пример: 'IncludeInteractions',false

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

    Веса наблюдения, заданные как вектор скалярных значений или имя переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в X или Tbl.

    Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится в Tbl.W, затем укажите его как 'W'.

    edge нормализует веса в каждом классе для суммирования со значением предшествующей вероятности соответствующего класса.

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

    Подробнее

    свернуть все

    Край классификации

    Край классификации - это средневзвешенное значение полей классификации.

    Один из способов выбора из нескольких классификаторов, например, выбор элемента, - выбор классификатора, который дает наибольший край.

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

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

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

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