Python でラベル エンコーディングを実行する方法 (例あり)
機械学習では、カテゴリ変数をアルゴリズムで簡単に使用できる何らかの数値形式に変換することがよくあります。
これを行う 1 つの方法は、ラベル エンコーディングを使用することです。これにより、各カテゴリ値にアルファベット順に基づいて整数値が割り当てられます。
たとえば、次のスクリーンショットは、 Teamというカテゴリ変数の各一意の値を、アルファベット順に基づいて整数値に変換する方法を示しています。
次の構文を使用して、Python でラベル エンコードを実行できます。
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' my_column '] = lab. fit_transform (df[' my_column '])
次の例は、この構文を実際に使用する方法を示しています。
例: Python でラベルをエンコードする
次のパンダ データフレームがあるとします。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
' points ': [25, 12, 15, 14, 19, 23, 25, 29]})
#view DataFrame
print (df)
team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29
次のコードを使用してラベル エンコードを実行し、チーム列の各カテゴリ値を整数値に変換できます。
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' team '] = lab. fit_transform (df[' team ']) #view updated DataFrame print (df) team points 0 0 25 1 0 12 2 1 15 3 1 14 4 1 19 5 1 23 6 2 25 7 2 29
結果から次のことがわかります。
- 各「A」値は0に変換されています。
- 各「B」値は1に変換されています。
- 各「C」の値は2に変換されました。
inverse_transform()関数を使用してチーム列の元の値を取得することもできることに注意してください。
#display original team labels lab. inverse_transform (df[' team ']) array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)
追加リソース
次のチュートリアルでは、Python で他の一般的なタスクを実行する方法について説明します。
Pandas でカテゴリ変数を数値に変換する方法
Pandasでブール値を整数値に変換する方法
Factorize() を使用して Pandas で文字列を数値としてエンコードする方法