predict

Маркируйте новые данные с помощью полууправляемого самообученного классификатора

    Описание

    пример

    label = predict(Mdl,X) возвращает вектор предсказанных меток классов для данных в таблице или матрице X, на основе полууправляемого самоконтролируемого классификатора Mdl.

    [label,score] = predict(Mdl,X) также возвращает матрицу счетов, указывающую вероятность того, что метка происходит от определенного класса. Для каждого наблюдения в X, предсказанная метка класса соответствует максимальному счету среди всех классов.

    Примеры

    свернуть все

    Используйте маркированные и немаркированные данные для обучения 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)

    Figure contains an object of type ConfusionMatrixChart.

    Только 8 из 150 наблюдений в newX неправильно маркированы.

    Входные параметры

    свернуть все

    Полууправляемый классификатор самообучения, заданный как SemiSupervisedSelfTrainingModel объект, возвращенный fitsemiself.

    Данные предиктора, которые будут классифицированы, заданные как числовая матрица или таблица. Каждая строка 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 имеет тот совпадающий тип данных, что и установленные метки классов Mdl.FittedLabels, и его длина равна количеству строк в X.

    Предсказанные счета классов, возвращенные как числовая матрица. score имеет размер m -by - K, где m - количество наблюдений (или строк) в X и K количество классов в Mdl.ClassNames.

    score(m,k) вероятность того, что наблюдение m в X принадлежит классу k, где более высокое значение баллов указывает на более высокую вероятность. Область значений значений баллов зависит от базового классификатора Mdl.Learner.

    Введенный в R2020b