One-Hotコードとは?深さの学習の中でどんな応用があります


一、One-Hot Encoding


One-Hot符号化は、1つの有効符号化とも呼ばれ、主にビット状態レジスタを用いて1つの状態を符号化し、各状態は独立したレジスタビットであり、任意の場合に1つしか有効ではない.実際の機械学習の応用タスクでは、特徴は常に連続値ではない場合があり、性別が「male」と「female」に分けられるなどの分類値である可能性があります.機械学習タスクでは、このような特徴について、通常、次の例のように、特徴をデジタル化する必要があります.
性別:["male","female"]地域:[[Europe],[US],[Asia]]ブラウザ:[[Firefox],[Chrome],[Safari],[Internet Explorer]]あるサンプルについて,[[male],[US],[Internet Explorer]]のように,この分類値の特徴をデジタル化する必要があり,最も直接的な方法では,[0,1,3]をシーケンス化することができる.しかし,このような特徴処理は機械学習アルゴリズムに直接入れることはできない. 

二、One-Hot Encodingの処理方法


上記の問題に対して、性別の属性は2次元であり、同理であり、地域は3次元であり、ブラウザは思考的である.このように、One-Hot符号化方式で上記のサンプル「["male"、"US"、"Internet Explorer"」を符号化し、「male」は[1,0]、同理「US」は[0,1,0]、「Internet Explorer」は[0,0,1]に対応する.完全な特徴デジタル化の結果は,[1,0,0,1,0,0,0,0,1]であった.結果として、データが非常にまばらになることがあります.

三、実際のPythonコード

from sklearn import preprocessing
 
enc = preprocessing.OneHotEncoder()
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])
 
array = enc.transform([[0,1,3]]).toarray()
 
print array

結果:[[1.0.0.1.0.0.0.0.1.]]
参照先:https://blog.csdn.net/google19890102/article/details/44039761