predict

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

    Описание

    пример

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

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

    Примеры

    свернуть все

    Используйте маркированные и немаркированные данные для обучения SemiSupervisedGraphModel объект. Пометьте новые данные с помощью обученной модели.

    Случайным образом сгенерируйте 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];

    Подгонка меток к немаркированным данным с помощью полууправляемого метода на основе графов. Задайте расширение метки в качестве алгоритма маркировки и используйте автоматически выбранный масштабный коэффициент ядра. Функция fitsemigraph возвращает SemiSupervisedGraphModel объект, чей FittedLabels свойство содержит установленные метки для немаркированных данных и LabelScores свойство содержит связанные счета меток.

    Mdl = fitsemigraph(labeledX,Y,unlabeledX,'Method','labelspreading', ...
        'KernelScale','auto')
    Mdl = 
      SemiSupervisedGraphModel with properties:
    
                 FittedLabels: [300x1 double]
                  LabelScores: [300x3 double]
                   ClassNames: [1 2 3]
                 ResponseName: 'Y'
        CategoricalPredictors: []
                       Method: 'labelspreading'
    
    
      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 функция SemiSupervisedGraphModel объект. Сравните истинные метки с предсказанными метками с помощью матрицы неточностей.

    predictedLabels = predict(Mdl,newX);
    confusionchart(trueLabels,predictedLabels)

    Figure contains an object of type ConfusionMatrixChart.

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

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

    свернуть все

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

    Данные предиктора, которые будут классифицированы, заданные как числовая матрица или таблица. Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

    Если вы тренировались Mdl использование матричных данных (X и UnlabeledX в вызове на fitsemigraph), затем задайте X в виде числовой матрицы.

    • Переменные в столбцах X должен иметь тот же порядок, что и переменные предиктора, которые обучали Mdl.

    • Программа обрабатывает предикторы в X индексы которого совпадают с Mdl.CategoricalPredictors как категориальные предикторы.

    Если вы тренировались Mdl использование табличных данных (Tbl и UnlabeledTbl в вызове на fitsemigraph), затем задайте X как таблица.

    • Все переменные предиктора в X должны иметь те же имена переменных и типы данных, что и обученные Mdl (хранится в Mdl.PredictorNames). Однако порядок столбцов X не должен соответствовать порядку столбцов Tbl. Кроме того, Tbl и X может содержать дополнительные переменные (для примера, переменные отклика), но predict игнорирует их.

    • predict не поддерживает многополюсные переменные, массивы ячеек, отличные от массивов ячеек векторов символов, или порядковые категориальные переменные.

    Если вы задаете 'Standardize',true в fitsemigraph для обучения Mdl, затем программное обеспечение стандартизирует столбцы X использование соответствующих средств и стандартных отклонений, рассчитанных на обучающих данных.

    Типы данных: single | double | table

    Выходные аргументы

    свернуть все

    Предсказанные метки классов, возвращенные как категориальный или символьный массив, логический или числовой вектор или массив ячеек из векторов символов. label имеет тот совпадающий тип данных, что и установленные метки классов Mdl.FittedLabels, и его длина равна количеству строк в X.

    Для получения дополнительной информации о том, как predict предсказывает метки классов, см. Алгоритмы.

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

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

    Для получения дополнительной информации о том, как predict предсказывает счета классов, см. Алгоритмы.

    Подробнее о

    свернуть все

    График подобия

    График подобия моделирует отношения локального соседства между наблюдениями в данных предиктора, как маркированных, так и не маркированных, как неориентированный график. Узлы в графике представляют наблюдения, а ребра, которые не имеют направления, представляют связи между наблюдениями.

    Если попарное расстояние Disti,j между любыми двумя узлами i и j положительно (или больше определенного порога), то график подобия соединяет эти два узла с помощью ребра. Ребро между этими двумя узлами взвешивается попарным Si,j подобия, где Si,j=exp((Disti,jσ)2), для заданного значения σ шкалы ядра.

    Матрица подобия

    Матрица подобия является матричным представлением графика подобия. Матрица n -by n S=(Si,j)i,j=1,,n содержит попарные значения подобия между связанными узлами в графике подобия. Матрица подобия графика также называется матрицей смежности.

    Матрица подобия симметрична, потому что ребра графика подобия не имеют направления. Значение Si,j = 0 означает, что узлы < reservedrangesplaceholder1 > и < reservedrangesplaceholder0 > графика подобия не связаны.

    Алгоритмы

    Для подгонки меток к немаркированным обучающим данным, fitsemigraph строит график подобия с маркированными и немечеными наблюдениями в качестве узлов и распределяет информацию о метке от маркированных наблюдений к немеченым наблюдениям с помощью распространения метки или расширения метки. Результат SemiSupervisedGraphModel объект хранит подгоняемые метки и счета меток для немеченых данных в своем FittedLabels и LabelScores свойства, соответственно.

    Чтобы предсказать метку нового x наблюдений, predict функция использует взвешенное среднее значение соседних счетов наблюдения, чтобы вычислить счета метки для x, а именно Fx=j=1nS(x,xj)Fxjj=1nS(x,xj).

    • n - количество наблюдений в обучающих данных.

    • Fxj - вектор-строка счетов меток для обучающего xj наблюдения (или узла j). Для получения дополнительной информации о расчете счетов меток для обучающих наблюдений, см. Алгоритмы.

    • S (x, xj) является парным подобием между новой x наблюдений и обучающей xj наблюдений, где S (xi, xj) = Si,j так, как определено в График Подобия.

    Столбец с максимальным счетом в Fx соответствует предсказанной метке класса для x. Для получения дополнительной информации см. раздел [1].

    Ссылки

    [1] Делальо, Оливье, Йошуа Бенгио и Николя Ле Ру. Эффективная непараметрическая индукция функции в полууправляемом обучении. Материалы десятого Международного семинара по искусственному интеллекту и статистике. 2005.

    Введенный в R2020b