OrdinalEncoder
メニューを表示するにはスワイプしてください
次に取り組むべき課題はカテゴリカルデータです。カテゴリカル変数には主に2つのタイプがあります。
**順序型(Ordinal)**データには自然な順序があり、**名義型(Nominal)**データには順序がありません。この順序があるため、カテゴリは順位に従って数値としてエンコードできます。
例えば、'rate'列に'Terrible'、'Bad'、'OK'、'Good'、'Great'という値がある場合、次のようにエンコードできます:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
順序型データをエンコードするには、OrdinalEncoderを使用します。これはカテゴリを0から始まる整数に変換します。
OrdinalEncoderは他のトランスフォーマーと同様に適用されます。主な課題はcategories引数を正しく指定することです。
例えば、(penguinsデータセットではない)データセットに'education'列が含まれている場合、最初のステップはそのユニークな値を確認することです。
12345import 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' までの順序付きカテゴリ値のリストを作成する必要がある。
1234567891011121314import 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を使用するのは適切でしょうか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 5