resubPredict

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

Описание

пример

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

пример

[label,Posterior,Cost] = resubPredict(Mdl) также возвращает Апостериорную вероятность (Posterior) и предсказанный (ожидал) Стоимость Misclassification (Cost) соответствие наблюдениям (строки) в Mdl.X.

Примеры

свернуть все

Загрузите 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', ...
    {'TrueLabel','PredictedLabel'})
ans=10×2 table
      TrueLabel       PredictedLabel
    ______________    ______________

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

Оцените апостериорные вероятности в выборке и затраты misclassification с помощью наивного классификатора Байеса.

Загрузите 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 классификатор.

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

[label,Posterior,MisclassCost] = resubPredict(Mdl);
Mdl.ClassNames
ans = 3x1 cell
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

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

idx = randsample(size(X,1),10);
table(Y(idx),label(idx),Posterior(idx,:),MisclassCost(idx,:),'VariableNames', ...
    {'TrueLabel','PredictedLabel','PosteriorProbability','MisclassificationCost'})
ans=10×4 table
      TrueLabel       PredictedLabel              PosteriorProbability                       MisclassificationCost         
    ______________    ______________    _________________________________________    ______________________________________

    {'virginica' }    {'virginica' }    6.2514e-269     1.1709e-09              1             1             1    1.1709e-09
    {'setosa'    }    {'setosa'    }              1     5.5339e-19      2.485e-25    5.5339e-19             1             1
    {'virginica' }    {'virginica' }    7.4191e-249     1.4481e-10              1             1             1    1.4481e-10
    {'versicolor'}    {'versicolor'}     3.4472e-62        0.99997      3.362e-05             1     3.362e-05       0.99997
    {'virginica' }    {'virginica' }    3.4268e-229      6.597e-09              1             1             1     6.597e-09
    {'versicolor'}    {'versicolor'}     6.0941e-77         0.9998     0.00019663             1    0.00019663        0.9998
    {'virginica' }    {'virginica' }    1.3467e-167       0.002187        0.99781             1       0.99781      0.002187
    {'setosa'    }    {'setosa'    }              1     1.5776e-15     5.7172e-24    1.5776e-15             1             1
    {'virginica' }    {'virginica' }    2.0116e-232     2.6206e-10              1             1             1    2.6206e-10
    {'setosa'    }    {'setosa'    }              1     1.8085e-17     1.9639e-24    1.8085e-17             1             1

Порядок столбцов Posterior и MisclassCost соответствует порядку классов в Mdl.ClassNames.

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

свернуть все

Полный, обученный наивный классификатор Байеса в виде ClassificationNaiveBayes модель, обученная fitcnb.

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

свернуть все

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

Предсказанные метки класса имеют следующее:

  • Совпадающий тип данных как наблюдаемый класс помечает (Mdl.Y). (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

  • Длина, равная количеству строк Mdl.X.

  • Класс, дающий к самому низкому, ожидал стоимость misclassification (Cost).

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

Posterior(j,k) предсказанная апостериорная вероятность класса k (в классе Mdl.ClassNames(k)) учитывая наблюдение в строке j из Mdl.X.

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

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

Больше о

свернуть все

Стоимость Misclassification

misclassification cost является относительной серьезностью классификатора, маркирующего наблюдение в неправильный класс.

Существует два типа затрат misclassification: верный и ожидаемый. Позвольте K быть количеством классов.

  • True misclassification costK-by-K матрица, где элемент (i, j) указывает на misclassification стоимость предсказания наблюдения в класс j, если его истинным классом является i. Программное обеспечение хранит стоимость misclassification в свойстве Mdl.Cost, и использование это в расчетах. По умолчанию, Mdl.Cost(i,j) = 1, если ij, и Mdl.Cost(i,j) = 0, если i = j. Другими словами, стоимостью является 0 для правильной классификации и 1 для любой неправильной классификации.

  • Expected misclassification costK - размерный вектор, где элемент k является взвешенным средним misclassification стоимость классификации наблюдения в класс k, взвешенный апостериорными вероятностями класса.

    ck=j=1KP^(Y=j|x1,...,xP)Costjk.

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

Апостериорная вероятность

posterior probability является вероятностью, что наблюдение принадлежит конкретного класса, учитывая данные.

Для наивного Бейеса апостериорная вероятность, что классификацией является k для заданного наблюдения (x 1..., xP)

P^(Y=k|x1,..,xP)=P(X1,...,XP|y=k)π(Y=k)P(X1,...,XP),

где:

  • P(X1,...,XP|y=k) условная объединенная плотность предикторов, учитывая, они находятся в классе k. Mdl.DistributionNames хранит имена распределения предикторов.

  • π (Y = k) является распределением априорной вероятности класса. Mdl.Prior хранит предшествующее распределение.

  • P(X1,..,XP) объединенная плотность предикторов. Классы дискретны, таким образом, P(X1,...,XP)=k=1KP(X1,...,XP|y=k)π(Y=k).

Априорная вероятность

prior probability класса является принятой относительной частотой, с которой наблюдения от того класса происходят в населении.

Введенный в R2014b