resubPredict

Классификация обучающих данных с помощью обученного классификатора

    Описание

    пример

    label = resubPredict(Mdl) возвращает вектор предсказанных меток классов (label) для обученной классификационной модели Mdl использование данных предиктора, хранящихся в Mdl.X.

    пример

    label = resubPredict(Mdl,'IncludeInteractions',includeInteractions) задает, включать ли термины взаимодействия в расчеты. Этот синтаксис применяется только к обобщенным аддитивным моделям.

    пример

    [label,Score] = resubPredict(___) также возвращает классификационные оценки, используя любую из комбинаций входных аргументов в предыдущих синтаксисах.

    [label,Score,Cost] = resubPredict(Mdl) также возвращает ожидаемые затраты на неправильную классификацию. Этот синтаксис применяется только к k ближайшим соседним и наивным моделям Байеса.

    Примеры

    свернуть все

    Загрузите fisheriris набор данных. Создание X как числовая матрица, которая содержит четыре измерения для 150 ирисов. Создание Y как массив ячеек из векторов символов, который содержит соответствующие виды радужной оболочки.

    load fisheriris
    X = meas;
    Y = species;
    rng('default') % For reproducibility

    Обучите наивный классификатор Байеса с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. fitcnb принимает, что каждый предиктор условно и нормально распределен.

    Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'})
    Mdl = 
      ClassificationNaiveBayes
                  ResponseName: 'Y'
         CategoricalPredictors: []
                    ClassNames: {'setosa'  'versicolor'  'virginica'}
                ScoreTransform: 'none'
               NumObservations: 150
             DistributionNames: {'normal'  'normal'  'normal'  'normal'}
        DistributionParameters: {3x4 cell}
    
    
      Properties, Methods
    
    

    Mdl является обученным ClassificationNaiveBayes классификатор.

    Спрогнозируйте метки обучающей выборки.

    label = resubPredict(Mdl);

    Отображение результатов для случайного набора из 10 наблюдений.

    idx = randsample(size(X,1),10);
    table(Y(idx),label(idx),'VariableNames', ...
        {'True Label','Predicted Label'})
    ans=10×2 table
          True Label      Predicted Label
        ______________    _______________
    
        {'virginica' }    {'virginica' } 
        {'setosa'    }    {'setosa'    } 
        {'virginica' }    {'virginica' } 
        {'versicolor'}    {'versicolor'} 
        {'virginica' }    {'virginica' } 
        {'versicolor'}    {'versicolor'} 
        {'virginica' }    {'virginica' } 
        {'setosa'    }    {'setosa'    } 
        {'virginica' }    {'virginica' } 
        {'setosa'    }    {'setosa'    } 
    
    

    Создайте график неточностей из истинных меток Y и предсказанные метки label.

    cm = confusionchart(Y,label);

    Figure contains an object of type ConfusionMatrixChart.

    Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

    load ionosphere

    Обучите классификатор машины опорных векторов (SVM). Стандартизируйте данные и задайте, что 'g' - положительный класс.

    SVMModel = fitcsvm(X,Y,'ClassNames',{'b','g'},'Standardize',true);

    SVMModel является ClassificationSVM классификатор.

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

    rng(1); % For reproducibility
    ScoreSVMModel = fitPosterior(SVMModel)
    ScoreSVMModel = 
      ClassificationSVM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: '@(S)sigmoid(S,-9.481586e-01,-1.218402e-01)'
              NumObservations: 351
                        Alpha: [90x1 double]
                         Bias: -0.1343
             KernelParameters: [1x1 struct]
                           Mu: [1x34 double]
                        Sigma: [1x34 double]
               BoxConstraints: [351x1 double]
              ConvergenceInfo: [1x1 struct]
              IsSupportVector: [351x1 logical]
                       Solver: 'SMO'
    
    
      Properties, Methods
    
    

    Поскольку классы неразрывны, функция преобразования счета (ScoreSVMModel.ScoreTransform) - сигмоидная функция.

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

    [label,scores] = resubPredict(SVMModel);
    [~,postProbs] = resubPredict(ScoreSVMModel);
    table(Y(1:10),label(1:10),scores(1:10,2),postProbs(1:10,2),'VariableNames',...
        {'TrueLabel','PredictedLabel','Score','PosteriorProbability'})
    ans=10×4 table
        TrueLabel    PredictedLabel     Score     PosteriorProbability
        _________    ______________    _______    ____________________
    
          {'g'}          {'g'}          1.4861           0.82214      
          {'b'}          {'b'}         -1.0004           0.30434      
          {'g'}          {'g'}          1.8686           0.86916      
          {'b'}          {'b'}         -2.6458          0.084182      
          {'g'}          {'g'}          1.2805           0.79183      
          {'b'}          {'b'}         -1.4618           0.22025      
          {'g'}          {'g'}          2.1671           0.89813      
          {'b'}          {'b'}         -5.7089         0.0050112      
          {'g'}          {'g'}          2.4797           0.92223      
          {'b'}          {'b'}         -2.7813          0.074797      
    
    

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

    Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

    load ionosphere

    Обучите GAM с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. Укажите, чтобы включить 10 наиболее важных условий взаимодействия.

    Mdl = fitcgam(X,Y,'ClassNames',{'b','g'},'Interactions',10)
    Mdl = 
      ClassificationGAM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'logit'
                    Intercept: 3.2565
                 Interactions: [10x2 double]
              NumObservations: 351
    
    
      Properties, Methods
    
    

    Mdl является ClassificationGAM объект модели.

    Спрогнозируйте метки, используя как линейные, так и условия взаимодействия, а затем используя только линейные условия. Чтобы исключить условия взаимодействия, задайте 'IncludeInteractions',false. Оцените логит апостериорных вероятностей путем определения ScoreTransform свойство как 'none'.

    Mdl.ScoreTransform = 'none';
    [labels,scores] = resubPredict(Mdl);
    [labels_nointeraction,scores_nointeraction] = resubPredict(Mdl,'IncludeInteractions',false);

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

    t = table(Y,labels,scores,labels_nointeraction,scores_nointeraction, ...
        'VariableNames',{'True Labels','Predicted Labels','Scores' ...
        'Predicted Labels Without Interactions','Scores Without Interactions'});
    head(t)
    ans=8×5 table
        True Labels    Predicted Labels          Scores          Predicted Labels Without Interactions    Scores Without Interactions
        ___________    ________________    __________________    _____________________________________    ___________________________
    
           {'g'}            {'g'}          -51.628     51.628                    {'g'}                        -47.676     47.676     
           {'b'}            {'b'}           37.433    -37.433                    {'b'}                         36.435    -36.435     
           {'g'}            {'g'}          -62.061     62.061                    {'g'}                        -58.357     58.357     
           {'b'}            {'b'}           37.666    -37.666                    {'b'}                         36.297    -36.297     
           {'g'}            {'g'}          -47.361     47.361                    {'g'}                        -43.373     43.373     
           {'b'}            {'b'}           106.48    -106.48                    {'b'}                         102.43    -102.43     
           {'g'}            {'g'}          -62.665     62.665                    {'g'}                        -58.377     58.377     
           {'b'}            {'b'}           201.46    -201.46                    {'b'}                         197.84    -197.84     
    
    

    Предсказанные метки для обучающих данных X не варьируются в зависимости от включения условий взаимодействия, но оцененные значения баллов различны.

    Входные параметры

    свернуть все

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

    МодельОбъект модели
    Обобщенная аддитивная модельClassificationGAM
    k - ближайшая соседняя модельClassificationKNN
    Наивная модель БайесаClassificationNaiveBayes
    Модель нейронной сетиClassificationNeuralNetwork
    Поддерживайте векторную машину для одноклассовой и двоичной классификацииClassificationSVM

    Флаг для включения условий взаимодействия модели, заданный как true или false. Этот аргумент действителен только для обобщенной аддитивной модели (GAM). То есть можно задать этот аргумент только тогда, когда Mdl является ClassificationGAM.

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

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

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

    свернуть все

    Предсказанные метки классов, возвращенные как категориальный или символьный массив, логический или числовой вектор или массив ячеек из векторов символов.

    label имеет тот совпадающий тип данных, что и наблюдаемые метки классов, которые обучали Mdl, и его длина равна количеству наблюдений в Mdl.X. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)

    Класс счетов, возвращенный как числовая матрица. Score имеет строки, равные количеству наблюдений в Mdl.X и столбцы, равные количеству отдельных классов в обучающих данных (size(Mdl.ClassNames,1)).

    Ожидаемые затраты на неправильную классификацию, возвращенные как числовая матрица. Этот выход применяется только к k ближайшим соседним и наивным моделям Байеса. То есть ,resubPredict возвращает Cost только когда Mdl является ClassificationKNN или ClassificationNaiveBayes.

    Cost имеет строки, равные количеству наблюдений в Mdl.X и столбцы, равные количеству отдельных классов в обучающих данных (size(Mdl.ClassNames,1)).

    Cost(j,k) - ожидаемая стоимость неправильной классификации наблюдения в строке j от Mdl.X предсказано в k классов (в классе Mdl.ClassNames(k)).

    Алгоритмы

    resubPredict вычисляет предсказания согласно соответствующему predict функция объекта (Mdl). Для описания модели смотрите predict функция, страницы с описанием в следующей таблице.

    МодельОбъект модели (Mdl)predict Функция объекта
    Обобщенная аддитивная модельClassificationGAMpredict
    k - ближайшая соседняя модельClassificationKNNpredict
    Наивная модель БайесаClassificationNaiveBayespredict
    Модель нейронной сетиClassificationNeuralNetworkpredict
    Поддерживайте векторную машину для одноклассовой и двоичной классификацииClassificationSVMpredict

    Расширенные возможности

    См. также

    | |

    Введенный в R2012a