Классификация обучающих данных с помощью обученного классификатора
задает, включать ли термины взаимодействия в расчеты. Этот синтаксис применяется только к обобщенным аддитивным моделям.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 |
| Наивная модель Байеса | ClassificationNaiveBayes |
| Модель нейронной сети | ClassificationNeuralNetwork |
| Поддерживайте векторную машину для одноклассовой и двоичной классификации | ClassificationSVM |
includeInteractions - Флаг для включения условий взаимодействияtrue | falseФлаг для включения условий взаимодействия модели, заданный как true или false. Этот аргумент действителен только для обобщенной аддитивной модели (GAM). То есть можно задать этот аргумент только тогда, когда Mdl является ClassificationGAM.
Значение по умолчанию true если Mdl содержит условия взаимодействия. Значение должно быть false если модель не содержит членов взаимодействия.
Типы данных: logical
label - Предсказанные метки классовПредсказанные метки классов, возвращенные как категориальный или символьный массив, логический или числовой вектор или массив ячеек из векторов символов.
label имеет тот совпадающий тип данных, что и наблюдаемые метки классов, которые обучали Mdl, и его длина равна количеству наблюдений в Mdl.X. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)
Score - счета классовКласс счетов, возвращенный как числовая матрица. Score имеет строки, равные количеству наблюдений в Mdl.X и столбцы, равные количеству отдельных классов в обучающих данных (size(Mdl.ClassNames,1)).
Cost - Ожидаемые расходы на неправильную классификациюОжидаемые затраты на неправильную классификацию, возвращенные как числовая матрица. Этот выход применяется только к 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 Функция объекта |
|---|---|---|
| Обобщенная аддитивная модель | ClassificationGAM | predict |
| k - ближайшая соседняя модель | ClassificationKNN | predict |
| Наивная модель Байеса | ClassificationNaiveBayes | predict |
| Модель нейронной сети | ClassificationNeuralNetwork | predict |
| Поддерживайте векторную машину для одноклассовой и двоичной классификации | ClassificationSVM | predict |
Указания и ограничения по применению:
Эта функция поддерживает ClassificationKNN и ClassificationSVM объекты, оснащенные входными параметрами массива GPU.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.