exponenta event banner

предсказать

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

    Описание

    пример

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

    Матрица подобия симметрична, потому что рёбра графа подобия не направлены. Значение Si,j = 0 означает, что узлы i и j графа подобия не связаны.

    Алгоритмы

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

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

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

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

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

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

    Ссылки

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

    Представлен в R2020b