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 | char

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

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

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

    Тип данных декодируемых меток в виде вектора символов или строкового скаляра.

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

    Пример: 'double'

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

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

    свернуть все

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

    Введенный в R2020b