exponenta event banner

предсказать

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

    Описание

    пример

    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