問題の概要
機械学習の分類問題では、大部分がカテゴリカル変数の使用には、特定のエンコード技術が必要となるという課題が生じます。そのような手法の 1 つはホット エンコーディングであり、データを分類子に渡す前に一般的に使用されます。
アプローチ 1: Pandas の pd.get_dummies を利用する
一般的なアプローチの 1 つは、pd を使用することです。パンダからのget_dummys。カテゴリ列を複数のダミー列に変換し、それぞれが異なるカテゴリを表します。
例:
import pandas as pd s = pd.Series(list('abca')) pd.get_dummies(s) Out[]: a b c 0 1.0 0.0 0.0 1 0.0 1.0 0.0 2 0.0 0.0 1.0 3 1.0 0.0 0.0
または、接頭辞を指定すると、ダミーごとに複数の列が作成されます。
df = pd.DataFrame({ 'A':['a','b','a'], 'B':['b','a','c'] }) df Out[]: A B 0 a b 1 b a 2 a c one_hot = pd.get_dummies(df['B'], prefix='B') df = df.drop('B',axis = 1) df = df.join(one_hot) df Out[]: A Ba Bb Bc 0 a 0 1 0 1 b 1 0 0 2 a 0 0 1
アプローチ 2: Scikit-learn の採用
Scikit-learn の OneHotEncoder は、ワン ホット エンコーディングに対する堅牢かつ柔軟なアプローチを提供します。
例:
from sklearn.preprocessing import OneHotEncoder enc = OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) enc.transform([[0, 1, 1]]).toarray() array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
提供されたコード スニペットはサンプル データのフィッティングと変換を示し、バイナリ ワンホット エンコーディングを示しています。
計算リソースを慎重に検討してください。 1 回のホット エンコーディング、特に大規模なデータセットの場合に必要です。効率的なデータ処理と特徴選択技術は、パフォーマンスを最適化し、適切な分類結果を達成するために非常に重要です。
以上がOne Hot Encoding は Python のカテゴリ変数にどのように対処しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。