Пометьте новые данные с помощью полуконтролируемого самообученного классификатора
Используйте и помеченные и непомеченные данные, чтобы обучить SemiSupervisedSelfTrainingModel
объект. Пометьте новые данные с помощью обученной модели.
Случайным образом сгенерируйте 15 наблюдений за маркированными данными с 5 наблюдениями в каждом из трех классов.
rng('default') % For reproducibility labeledX = [randn(5,2)*0.25 + ones(5,2); randn(5,2)*0.25 - ones(5,2); randn(5,2)*0.5]; Y = [ones(5,1); ones(5,1)*2; ones(5,1)*3];
Случайным образом сгенерируйте 300 дополнительных наблюдений за непомеченными данными с 100 наблюдениями в классе.
unlabeledX = [randn(100,2)*0.25 + ones(100,2); randn(100,2)*0.25 - ones(100,2); randn(100,2)*0.5];
Подгонка помечает к непомеченным данным при помощи полуконтролируемого самометода обучения. Функциональный fitsemiself
возвращает SemiSupervisedSelfTrainingModel
возразите чей FittedLabels
свойство содержит подходящие метки для непомеченных данных и чей LabelScores
свойство содержит связанные оценки метки.
Mdl = fitsemiself(labeledX,Y,unlabeledX)
Mdl = SemiSupervisedSelfTrainingModel with properties: FittedLabels: [300x1 double] LabelScores: [300x3 double] ClassNames: [1 2 3] ResponseName: 'Y' CategoricalPredictors: [] Learner: [1x1 classreg.learning.classif.CompactClassificationECOC] Properties, Methods
Случайным образом сгенерируйте 150 наблюдений за новыми данными с 50 наблюдениями в классе. В целях валидации отслеживайте истинные метки для новых данных.
newX = [randn(50,2)*0.25 + ones(50,2); randn(50,2)*0.25 - ones(50,2); randn(50,2)*0.5]; trueLabels = [ones(50,1); ones(50,1)*2; ones(50,1)*3];
Предскажите метки для новых данных при помощи predict
функция SemiSupervisedSelfTrainingModel
объект. Сравните истинные метки с предсказанными метками при помощи матрицы беспорядка.
predictedLabels = predict(Mdl,newX); confusionchart(trueLabels,predictedLabels)
Только 8 из этих 150 наблюдений в newX
mislabeled.
Mdl
— Полуконтролируемый самоучебный классификаторSemiSupervisedSelfTrainingModel
объектПолуконтролируемый самоучебный классификатор в виде SemiSupervisedSelfTrainingModel
объект, возвращенный fitsemiself
.
X
— Данные о предикторе, которые будут классифицированыДанные о предикторе, которые будут классифицированы в виде числовой матрицы или таблицы. Каждая строка X
соответствует одному наблюдению, и каждый столбец соответствует одной переменной.
Если вы обучили Mdl
использование матричных данных (X
и UnlabeledX
в вызове fitsemiself
), затем задайте X
как числовая матрица.
Переменные в столбцах X
должен иметь тот же порядок как переменные предикторы, которые обучили Mdl
.
Программное обеспечение обрабатывает предикторы в X
чьи индексы совпадают с Mdl.CategoricalPredictors
как категориальные предикторы.
Если вы обучили Mdl
использование табличных данных (Tbl
и UnlabeledTbl
в вызове fitsemiself
), затем задайте X
как таблица.
Все переменные предикторы в X
должен иметь те же имена переменных и типы данных как те, которые обучили Mdl
(сохраненный в Mdl.PredictorNames
). Однако порядок следования столбцов X
не должен соответствовать порядку следования столбцов Tbl
. Кроме того, Tbl
и X
может содержать дополнительные переменные (например, переменные отклика), но predict
игнорирует их.
predict
не поддерживает многостолбцовые переменные или массивы ячеек кроме массивов ячеек из символьных векторов.
Типы данных: single
| double
| table
label
— Предсказанные метки классаПредсказанные метки класса, возвращенные как категориальное или символьный массив, логический или числовой вектор или массив ячеек из символьных векторов. label
имеет совпадающий тип данных, когда подходящий класс маркирует Mdl.FittedLabels
, и его длина равна количеству строк в X
.
score
— Предсказанные баллы классаПредсказанные баллы класса, возвращенные как числовая матрица. score
имеет размер m-by-K, где m является количеством наблюдений (или строки) в X
и K является количеством классов в Mdl.ClassNames
.
score(m,k)
вероятность то наблюдение m
в X
принадлежит, чтобы классифицировать k
, где более высокое значение баллов указывает на более высокую вероятность. Область значений значений баллов зависит от базового классификатора Mdl.Learner
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.