exponenta event banner

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