機械学習のデータ前処理--独熱符号化(One-Hot)

1172 ワード

あるサンプルの特徴には複数の特徴があります.あるサンプルが複数の特徴によって処理されることを記述する
例えば、Bengioという人については、(男、アメリカ、1メートル8)
上記の特徴については、各特徴に対して異なる状態ビットがあり、例えば性別に男女の区別があり、その特徴値はいずれも離散的な非連続値の無秩序値である.それを連続的に秩序化するために.独熱符号化方式を採用する.
ユニヒートコード(One-Hot)とは?
One-Hot符号化は、1ビット有効符号化とも呼ばれ、主にNビット状態レジスタを用いてN個の状態を符号化し、各状態は独立したレジスタビットであり、いつでも1ビットしか有効ではない.
One-Hot符号化は分類変数をバイナリベクトルとして表す.これは、まず分類値を整数値にマッピングする必要があります.そして、各整数値はバイナリベクトルとして表され、整数のインデックスを除いてゼロ値であり、1としてマークされる.
例:
性別の特徴は男女の2つの状の突則Nに分けて2で、あります:
男=>10
女=>01
身長の特徴は1メートル8、1メートル7、1メートル6、1メートル5(4つの例を挙げる)でN=4
一メートル八=>1000、一メートル七=>0100、一メートル六=>0010、一メートル六五>0001
その他の特徴類似
次の例があります.
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer

testdata = pd.DataFrame({'pet': ['cat', 'dog', 'dog', 'fish'],                         
'age': [4 , 6, 3, 3],                         
'salary':[4, 5, 1, 1]})

年齢を小さい順:3 4 6(3を2回繰り返し、1回で処理)
以上の3つの状態は、1000001に分けられます.