Полуконтролируемая самообученная модель для классификации
Можно использовать полуконтролируемый самометод обучения, чтобы пометить непомеченные данные при помощи fitsemiself функция. Получившийся SemiSupervisedSelfTrainingModel объект содержит подходящие метки для непомеченных наблюдений (FittedLabels) и их баллы (LabelScores). Можно также использовать SemiSupervisedSelfTrainingModel возразите как классификатор, обученный и на помеченных и на непомеченных данных, чтобы классифицировать новые данные при помощи predict функция.
Создайте SemiSupervisedSelfTrainingModel объект при помощи fitsemiself.
FittedLabels — Метки адаптированы к непомеченным даннымЭто свойство доступно только для чтения.
Метки, адаптированные к непомеченным данным в виде категориального или символьного массива, логического или числового вектора или массива ячеек из символьных векторов. FittedLabels имеет совпадающий тип данных, когда класс помечает в переменной отклика в вызове fitsemiself. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Каждая строка FittedLabels представляет подходящую метку соответствующего наблюдения за UnlabeledX или UnlabeledTbl.
Типы данных: single | double | logical | char | cell | categorical
LabelScores — Музыка к подходящим меткамЭто свойство доступно только для чтения.
Музыка к подходящим меткам в виде числовой матрицы. LabelScores имеет размер u-by-K, где u является количеством наблюдений в непомеченных данных, и K является количеством классов в ClassNames.
score(u,k) вероятность что наблюдение u принадлежит, чтобы классифицировать k, где более высокое значение баллов указывает на более высокую вероятность. Область значений значений баллов зависит от базового классификатора Learner.
Типы данных: single | double
Learner — Лежание в основе классификатораЭто свойство доступно только для чтения.
Базовый классификатор в виде объекта модели классификации. fitsemiself использование этот классификатор в цикле, чтобы пометить и выиграть непомеченные данные. Можно использовать запись через точку, чтобы отобразить значения параметров и гиперзначения параметров базового классификатора.
Например, если вы задаете 'Learner','svm' в вызове fitsemiself, затем можно ввести Mdl.Learner.KernelParameters отобразить параметры ядра итоговой модели машины опорных векторов (SVM), обученной и на помеченных и на непомеченных данных.
Примечание
Поскольку Mdl.Learner модель имеет некоторые ограничения (например, отсутствие поддержки табличных данных), избегайте использования его непосредственно с его объектными функциями, такой как loss и predict. Чтобы предсказать на новых данных, используйте predict объектная функция SemiSupervisedSelfTrainingModel.
CategoricalPredictors — Категориальные индексы предиктора[]Это свойство доступно только для чтения.
Категориальные индексы предиктора в виде положительного целочисленного вектора. Предположение, что данные о предикторе содержат наблюдения в строках, CategoricalPredictors содержит значения индекса, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]).
Типы данных: double
ClassNames — Уникальные метки классаЭто свойство доступно только для чтения.
Уникальные метки класса раньше помечали непомеченные данные в виде категориального или символьного массива, логического или числового вектора или массива ячеек из символьных векторов. Порядок элементов ClassNames определяет порядок классов.
Типы данных: single | double | logical | char | cell | categorical
PredictorNames — Имена переменного предиктораЭто свойство доступно только для чтения.
Переменный предиктор называет в виде массива ячеек из символьных векторов. Порядок элементов PredictorNames соответствует порядку, в котором имена предиктора появляются в данных о предикторе.
Типы данных: cell
ResponseName — Имя переменной откликаЭто свойство доступно только для чтения.
Имя переменной отклика в виде вектора символов.
Типы данных: char
predict | Пометьте новые данные с помощью полуконтролируемого самообученного классификатора |
Подгонка помечает к непомеченным данным при помощи полуконтролируемого самометода обучения.
Случайным образом сгенерируйте 60 наблюдений за маркированными данными с 20 наблюдениями в каждом из трех классов.
rng('default') % For reproducibility labeledX = [randn(20,2)*0.25 + ones(20,2); randn(20,2)*0.25 - ones(20,2); randn(20,2)*0.5]; Y = [ones(20,1); ones(20,1)*2; ones(20,1)*3];
Визуализируйте маркированные данные при помощи графика рассеивания. Наблюдения в том же классе имеют тот же цвет. Заметьте, что данные разделены в три кластера с очень небольшим количеством перекрытия.
scatter(labeledX(:,1),labeledX(:,2),[],Y,'filled') title('Labeled Data')

Случайным образом сгенерируйте 300 дополнительных наблюдений за непомеченными данными с 100 наблюдениями в классе. В целях валидации отслеживайте истинные метки для непомеченных данных.
unlabeledX = [randn(100,2)*0.25 + ones(100,2);
randn(100,2)*0.25 - ones(100,2);
randn(100,2)*0.5];
trueLabels = [ones(100,1); ones(100,1)*2; ones(100,1)*3];Подгонка помечает к непомеченным данным при помощи полуконтролируемого самометода обучения. Функциональный 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
Визуализируйте подходящие результаты метки при помощи графика рассеивания. Используйте подходящие метки, чтобы выбрать цвет наблюдений и использовать максимальные баллы метки, чтобы установить прозрачность наблюдений. Наблюдения с меньшей прозрачностью помечены большим доверием. Заметьте, что наблюдения, которые лежат ближе кластерным контурам, помечены большей неопределенностью.
maxLabelScores = max(Mdl.LabelScores,[],2); rescaledScores = rescale(maxLabelScores,0.05,0.95); scatter(unlabeledX(:,1),unlabeledX(:,2),[],Mdl.FittedLabels,'filled', ... 'MarkerFaceAlpha','flat','AlphaData',rescaledScores); title('Fitted Labels for Unlabeled Data')

Определите точность маркировки при помощи истинных меток для непомеченных данных.
numWrongLabels = sum(trueLabels ~= Mdl.FittedLabels)
numWrongLabels = 8
Только 8 из этих 300 наблюдений в unlabeledX mislabeled.
Используйте и помеченные и непомеченные данные, чтобы обучить 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.
fitsemigraph | fitsemiself | predict | SemiSupervisedGraphModel
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.