resubPredict

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

    Описание

    пример

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

    пример

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

    пример

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

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

    Примеры

    свернуть все

    Загрузите 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
    Наивная модель BayesClassificationNaiveBayes
    Модель нейронной сетиClassificationNeuralNetwork
    Машина опорных векторов для и бинарной классификации одного классаClassificationSVM

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

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

    Типы данных: логический

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

    свернуть все

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

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

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

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

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

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

    Алгоритмы

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

    МодельОбъект модели классификации (Mdl)predict Объектная функция
    Обобщенная аддитивная модельClassificationGAMpredict
    k- соседняя модельClassificationKNNpredict
    Наивная модель BayesClassificationNaiveBayespredict
    Модель нейронной сетиClassificationNeuralNetworkpredict
    Машина опорных векторов для и бинарной классификации одного классаClassificationSVMpredict

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

    Смотрите также

    | |

    Представленный в R2012a