exponenta event banner

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