Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ オーディナルエンコーダー | Scikit-learnによるデータの前処理
Pythonによる機械学習入門

オーディナルエンコーダー

メニューを表示するにはスワイプしてください

次に扱うべき課題はカテゴリカルデータ。カテゴリ変数には主に2つのタイプが存在。

カテゴリカルデータの種類

順序型(Ordinal) データは自然な順序を持ち、名義型(Nominal) データは順序を持たない。この順序性により、カテゴリは順位に従って数値としてエンコード可能。

例えば、'rate' 列に 'Terrible', 'Bad', 'OK', 'Good', 'Great' の値がある場合、次のようにエンコードできる:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

順序型データ をエンコードするには、OrdinalEncoder を使用。カテゴリを0から始まる整数に変換。

OrdinalEncoder
順序エンコーディング

OrdinalEncoder は他のトランスフォーマーと同様に適用されます。主な課題は、categories 引数を正しく指定することにあります。

例えば、(penguins データセットではない)データセットに 'education' 列が含まれている場合、最初のステップはそのユニークな値を確認することです。

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())

'HS-grad'から'Doctorate'までの順序付きカテゴリ値のリストを作成する必要がある。

1234567891011121314
import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])

複数の特徴量をOrdinalEncoderで変換する場合、各列のカテゴリを明示的に指定する必要があります。これはcategories引数を使用して行います。

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. データセット内のカテゴリカルデータを処理するためのOrdinalEncoderの使用について、最も適切に説明している文はどれですか?

2. カテゴリカル列'Color'があるとします。その値をエンコードするためにOrdinalEncoderを使用するのは適切ですか?

question mark

データセット内のカテゴリカルデータを処理するためのOrdinalEncoderの使用について、最も適切に説明している文はどれですか?

正しい答えを選んでください

question mark

カテゴリカル列'Color'があるとします。その値をエンコードするためにOrdinalEncoderを使用するのは適切ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  5
some-alt