onehotdecode

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

    Описание

    пример

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

    пример

    A = onehotdecode(B,classes,featureDim,typename) декодирует вероятности в метки класса типа данных typename.

    Примеры

    свернуть все

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

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

    colorsOriginal = ["red"; "blue"; "red"; "green"; "yellow"; "blue"];
    colorsOriginal = categorical(colorsOriginal)
    colorsOriginal = 1×6 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 = 1×6 categorical    
    red          blue         red          green        yellow       blue         
            
    

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

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

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

    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 = 10×1 string    
    "Green"      
    "Blue"       
    "Red"        
    "Green"      
    "Red"        
    "Blue"       
    "Purple"     
    "Green"      
    "Yellow"     
    "Blue" 
    

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

    свернуть все

    Векторы вероятности, чтобы декодировать в виде числового массива.

    Значения в 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'Строка и числовые типы, такие как 'single' и 'int64'. Если вы задаете числовой тип, classes должен быть числовой вектор.

    Пример: 'double'

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

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

    свернуть все

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

    Введенный в R2020b