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