カテゴリ列の種類が多い場合、いくつかを絞ってダミー化したい場合があります。
そんなときは、pandasのget_dummies
よりsklearnのLabelBinarizer
の方が便利です。
コード
from sklearn.preprocessing import LabelBinarizer lb = LabelBinarizer() #ダミー化したいカテゴリの配列を渡す #もちろん数値でもよい lb.fit(['a','b','c']) #実際にダミー化するデータ(dは上で渡していない) lb.transform(['a','a','b','d']) #結果 #[a,b,c]と一致する場合はそこに1がたつ #array([[1, 0, 0], # [1, 0, 0], # [0, 1, 0], # [0, 0, 0]])
fitしたラベルが二つ以下の場合は、一列で帰ってきます。
また、 flgの立ち方を変えたい場合(True=1,False=-1とか)にしたい場合は以下みたいな書き方になります。
#初期化の際にneg_label,pos_labelに与える) lb = LabelBinarizer(neg_label = -1,pos_label=1)
▼中身に関係なく、とりあえずダミー化したいなら、
pandasのget_dummies
を使いましょう。