Scikit-learn: 複数列のラベルコーディングを使用する


機械学習におけるラベル エンコードはカテゴリ変数の値を整数値に変換するプロセスです。

たとえば、次のスクリーンショットは、 Teamというカテゴリ変数の各一意の値を、アルファベット順に基づいて整数値に変換する方法を示しています。

次の構文を使用して、Python で複数列ラベルのエンコードを実行できます。

 from sklearn. preprocessing import LabelEncoder

#perform label encoding on col1, col2 columns
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )

次の例は、この構文を実際に使用する方法を示しています。

例: Python でラベルをエンコードする

さまざまなバスケットボール選手に関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
                   ' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12

次のコードを使用してラベル エンコードを実行し、 team 列position 列、およびall_star列の各カテゴリ値を整数値に変換できます。

 from sklearn. preprocessing import LabelEncoder

#perform label encoding across team, position, and all_star columns
df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform )

#view udpated DataFrame
print (df)

   team position all_star points
0 0 1 1 11
1 0 0 0 8
2 1 1 1 10
3 1 0 1 6
4 1 0 1 6
5 2 1 0 5
6 2 1 1 9
7 3 0 0 12

結果から、 teampositionall_star列の各値が整数値に変換されていることがわかります。

たとえば、チーム列では次のことがわかります。

  • 各「A」値は0に変換されています。
  • 各「B」値は1に変換されています。
  • 各「C」の値は2に変換されました。
  • 各「D」値は3に変換されました。

この例では、DataFrame の 3 つの列に対してラベル エンコーディングを実行しましたが、同様の構文を使用して、必要な数のカテゴリ列に対してラベル エンコーディングを実行できることに注意してください。

追加リソース

次のチュートリアルでは、Python で他の一般的なタスクを実行する方法について説明します。

Pandas でカテゴリ変数を数値に変換する方法
Pandasでブール値を整数値に変換する方法
Factorize() を使用して Pandas で文字列を数値としてエンコードする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です