R でワンホット エンコーディングを行う方法


ワンホット エンコーディングは、カテゴリ変数を機械学習アルゴリズムで使用できる形式に変換するために使用されます。

ワンホット コーディングの基本的な考え方は、元のカテゴリ値を表す値 0 と 1 を取る新しい変数を作成することです。

たとえば、次の図は、チーム名を含むカテゴリ変数を 0 と 1 の値のみを含む新しい変数に変換するためにワンホット エンコードする方法を示しています。

次のステップバイステップの例は、R でこの正確なデータセットに対して 1 回限りのエンコードを行う方法を示しています。

ステップ 1: データを作成する

まず、R で次のデータ フレームを作成しましょう。

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#view data frame
df

  team points
1 to 25
2 to 12
3 B 15
4 B 14
5 B 19
6 B 23
7 C 25
8 C 29

ステップ 2: ワンホット エンコーディングを実行する

次に、キャレットパッケージのdummyVars()関数を使用して、データ フレーム内の ‘team’ 変数をワンホット エンコードしましょう。

 library ( caret)

#define one-hot encoding function
dummy <- dummyVars(" ~ . ", data=df)

#perform one-hot encoding on data frame
final_df <- data. frame (predict(dummy, newdata=df))

#view final data frame
final_df

  teamA teamB teamC points
1 1 0 0 25
2 1 0 0 12
3 0 1 0 15
4 0 1 0 14
5 0 1 0 19
6 0 1 0 23
7 0 0 1 25
8 0 0 1 29

元の「チーム」列には 3 つの一意の値が含まれていたため、3 つの新しい列がデータ フレームに追加されたことに注意してください。

また、元の「チーム」列は不要になったため、データ フレームから削除されていることにも注意してください。

ワンホット エンコーディングが完了したので、このデータセットを任意の機械学習アルゴリズムにフィードできるようになりました。

: dummyVars()関数の完全なオンライン ドキュメントは、ここで見つけることができます。

追加リソース

次のチュートリアルでは、カテゴリ変数の使用に関する追加情報を提供します。

R でカテゴリカル変数を作成する方法
R でカテゴリカル データをプロットする方法
カテゴリ変数または量的変数: 違いは何ですか?

コメントを追加する

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