Классификация данных обучения с использованием обученного классификатора
указывает, следует ли включать в вычисления элементы взаимодействия. Этот синтаксис применяется только к обобщенным аддитивным моделям.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 на графическом процессоре (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.