Классифицируйте обучающие данные с помощью обученного классификатора
задает, включать ли периоды взаимодействия в расчеты. Этот синтаксис применяется только к обобщенным аддитивным моделям.label
= 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.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
не варьируйтесь в зависимости от включения периодов взаимодействия, но предполагаемые значения баллов отличаются.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.