Классифицируйте обучающие данные с помощью обученного классификатора
[ задает, включать ли периоды взаимодействия в расчеты. Этот синтаксис применяется только к обобщенным аддитивным моделям.label,Score] = resubPredict(Mdl,'IncludeInteractions',includeInteractions)
Загрузите 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);

Загрузите 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.481840e-01,-1.218721e-01)'
NumObservations: 351
Alpha: [90x1 double]
Bias: -0.1343
KernelParameters: [1x1 struct]
Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 ... ]
Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 ... ]
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.82215
{'b'} {'b'} -1.0002 0.30439
{'g'} {'g'} 1.8686 0.86917
{'b'} {'b'} -2.6456 0.084197
{'g'} {'g'} 1.2806 0.79185
{'b'} {'b'} -1.4617 0.22026
{'g'} {'g'} 2.1671 0.89814
{'b'} {'b'} -5.7089 0.0050106
{'g'} {'g'} 2.4796 0.92223
{'b'} {'b'} -2.7812 0.074801
Оцените логит апостериорных вероятностей (классификационные оценки) для обучающих данных с помощью обобщенной аддитивной модели (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 не варьируйтесь в зависимости от включения периодов взаимодействия, но предполагаемые значения баллов отличаются.
Mdl — Модель машинного обучения классификацииМодель машинного обучения классификации в виде полного объекта модели классификации, как дали в следующей таблице поддерживаемых моделей.
| Модель | Объект модели классификации |
|---|---|
| Обобщенная аддитивная модель | ClassificationGAM |
| k- соседняя модель | ClassificationKNN |
| Наивная модель Bayes | ClassificationNaiveBayes |
| Модель нейронной сети | ClassificationNeuralNetwork |
| Машина опорных векторов для и бинарной классификации одного класса | ClassificationSVM |
includeInteractions — Отметьте, чтобы включать периоды взаимодействияtrue | falseОтметьте, чтобы включать периоды взаимодействия модели в виде true или false. Этот аргумент допустим только для обобщенной аддитивной модели (GAM). Таким образом, можно задать этот аргумент только когда Mdl ClassificationGAM.
Значением по умолчанию является true если Mdl содержит периоды взаимодействия. Значением должен быть false если модель не содержит периоды взаимодействия.
Типы данных: логический
label — Предсказанные метки классаПредсказанные метки класса, возвращенные как категориальное или символьный массив, логический или числовой вектор или массив ячеек из символьных векторов.
label имеет совпадающий тип данных, когда наблюдаемый класс помечает, это обучило Mdl, и его длина равна количеству наблюдений в Mdl.X. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Score — Баллы классаБаллы класса, возвращенные как числовая матрица. Score имеет строки, равные количеству наблюдений в Mdl.X и столбцы равняются количеству отличных классов в обучающих данных (size(Mdl.ClassNames,1)).
Cost — Ожидаемые затраты misclassificationОжидаемые затраты 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 Объектная функция |
|---|---|---|
| Обобщенная аддитивная модель | ClassificationGAM | predict |
| k- соседняя модель | ClassificationKNN | predict |
| Наивная модель Bayes | ClassificationNaiveBayes | predict |
| Модель нейронной сети | ClassificationNeuralNetwork | predict |
| Машина опорных векторов для и бинарной классификации одного класса | ClassificationSVM | predict |
Указания и ограничения по применению:
Эта функция полностью поддерживает массивы графического процессора для обученной модели классификации, заданной как ClassificationKNN или ClassificationSVM объект.
Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.