Main Content

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 
    
    

    categorical ベクトルに含まれるクラスを判別します。

    classes = categories(colorsOriginal);

    関数 onehotencode を使用してラベルを one-hot 符号化し、確率ベクトルにします。確率ベクトルを最初の次元に符号化します。

    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 個のランダムな確率ベクトルから成るセットを作成します。このベクトルは、観測値が 5 個のクラスのいずれかに属する確率を表します。

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

    5 個のクラスから成るセットを定義します。

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

    確率が最も高いクラスに確率を復号化します。確率ベクトルは 2 番目の次元に符号化されています。そのため、符号化された確立を含む次元を 2 として指定します。確率が最も高いクラスを string のベクトルとして取得します。

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

    入力引数

    すべて折りたたむ

    復号化する確率ベクトル。数値配列として指定します。

    B の値は 01 の範囲内でなければなりません。B 内の確率ベクトルに NaN 値が含まれる場合、この関数は、確率が最も高く、値が NaN ではないクラスにその観測値を復号化します。観測値に NaN 値のみが含まれる場合、この関数は、classes に含まれる最初のクラス ラベルにその観測値を復号化します。

    データ型: single | double

    クラス。文字ベクトルの cell 配列、string ベクトル、数値ベクトル、または 2 次元の文字配列として指定します。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | cell | char

    確率ベクトルが格納された次元。正の整数として指定します。

    featureDim を使用して、B 内で確率ベクトルが格納されている次元を指定します。この関数は、指定した次元に沿って、B 内の各ベクトルをそのベクトルで最も高い値と同じ位置にある classes の要素に置き換えます。

    featureDim で指定された B の次元の長さは、classes で指定されたクラスの数と等しくなければなりません。

    復号化されたラベルのデータ型。文字ベクトルまたは string スカラーとして指定します。

    typename の有効な値は、'categorical''string'、および 'single''int64' などの数値型です。数値型を指定する場合、classes は数値ベクトルでなければなりません。

    例: 'double'

    データ型: char | string

    出力引数

    すべて折りたたむ

    復号化されたクラス ラベル。categorical 配列、string 配列、または数値配列として返されます。

    バージョン履歴

    R2020b で導入