onehotdecode

Декодируйте векторы вероятностей в метки классов

    Описание

    пример

    A = onehotdecode(B,classes,featureDim) декодирует каждый вектор вероятностей в B к наиболее вероятной метке класса из меток, заданных classes. featureDim задает размерность, по которому заданы векторы вероятностей. Функция декодирует векторы вероятностей в метки классов, сопоставляя положение самого высокого значения в векторе с меткой класса в соответствующей позиции в classes. Каждый вектор вероятностей в A заменяется на значение classes что соответствует самому высокому значению в векторе вероятностей.

    пример

    A = onehotdecode(B,classes,featureDim,typename) декодирует каждый вектор вероятностей в B к наиболее вероятной метке класса и возвращает результат с типом данных typename. Используйте этот синтаксис для получения декодированных меток классов с определенным типом данных.

    Примеры

    свернуть все

    Используйте onehotencode и onehotdecode функции, чтобы кодировать набор меток в векторы вероятностей и декодировать их обратно в метки.

    Создайте вектор категориальных меток.

    colorsOriginal = ["red" "blue" "red" "green" "yellow" "blue"];
    colorsOriginal = categorical(colorsOriginal)
    colorsOriginal = 1x6 categorical
         red      blue      red      green      yellow      blue 
    
    

    Определите классы в категориальном векторе.

    classes = categories(colorsOriginal);

    Однократное кодирование меток в векторы вероятностей при помощи onehotencode функция. Закодируйте векторы вероятности в первую размерность.

    colorsEncoded = onehotencode(colorsOriginal,1)
    colorsEncoded = 4×6
    
         0     1     0     0     0     1
         0     0     0     1     0     0
         1     0     1     0     0     0
         0     0     0     0     1     0
    
    

    Использование onehotdecode чтобы декодировать векторы вероятностей.

    colorsDecoded = onehotdecode(colorsEncoded,classes,1)
    colorsDecoded = 1x6 categorical
         red      blue      red      green      yellow      blue 
    
    

    Декодированные метки совпадают с исходными метками.

    Используйте onehotdecode, чтобы декодировать набор векторов вероятностей в наиболее вероятный класс для каждого наблюдения.

    Создайте набор из 10 случайных векторов вероятностей. Векторы выражают вероятность того, что наблюдение принадлежит одному из пяти классов.

    numObs = 10;
    numClasses = 5;
    
    prob = rand(numObs,numClasses);
    
    tot = sum(prob,2);
    prob = prob./tot;

    Определите набор из пяти классов.

    classes = ["Red" "Yellow" "Green" "Blue" "Purple"];

    Декодируйте вероятности в наиболее вероятные классы. Векторы вероятностей кодируются во второе измерение, поэтому задайте размерность, содержащее закодированные вероятности, как 2. Получите наиболее вероятные классы как вектор строк.

    result = onehotdecode(prob,classes,2,"string")
    result = 10x1 string
        "Red"
        "Yellow"
        "Yellow"
        "Green"
        "Yellow"
        "Blue"
        "Green"
        "Yellow"
        "Red"
        "Red"
    
    

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

    свернуть все

    Векторы вероятности для декодирования, заданные как числовой массив.

    Значения в B должно быть между 0 и 1. Если вектор вероятности в B содержит NaN значения, затем функция декодирует это наблюдение к классу, который имеет наибольшую вероятность, которая не NaN. Если наблюдение содержит только NaN значения, функция декодирует это наблюдение до метки первого класса в classes.

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

    Классы, заданные как массив ячеек из векторов символов, строковый вектор, числовой вектор или двумерный символьный массив.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | cell

    Размерность, содержащая векторы вероятностей, заданная как положительное целое число.

    Использование featureDim для задания размерности в B который содержит векторы вероятностей. Функция заменяет каждый вектор в B вдоль заданного измерения элементом classes в том же положении, что и самое высокое значение вдоль вектора.

    Размерность B определяется featureDim должна иметь длину, равную количеству классов, заданному classes.

    Тип данных декодированных меток, заданный как вектор символов или строковый скаляр.

    Допустимые значения typename являются 'categorical', 'string' и такие числовые типы, как 'single' и 'int64'. Если вы задаете числовой тип, classes должен быть числовым вектором.

    Пример: 'double'

    Типы данных: char | string

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

    свернуть все

    Декодированные метки классов, возвращенные как категориальный массив, строковые массивы или числовой массив.

    Введенный в R2020b