ホームページ > バックエンド開発 > Python チュートリアル > Scikit-Learn で複数の列にわたってラベル エンコーディングを実行するにはどうすればよいですか?

Scikit-Learn で複数の列にわたってラベル エンコーディングを実行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-11 02:53:02
オリジナル
1063 人が閲覧しました

How to Perform Label Encoding Across Multiple Columns in Scikit-Learn?

Scikit-Learn の複数列にわたるラベル エンコーディング

カテゴリ データの複数の列を含むデータセットを扱う場合、これらをエンコードする必要があります。機械学習アルゴリズムで使用するために数値的にラベルを付けます。 Scikit-learn は、この目的のために LabelEncoder クラスを提供します。ただし、多数の列 (例: 50) を持つ DataFrame に直接適用すると、入力形状が正しくないためエラーが発生する可能性があります。

この課題を克服するには、すべての列でラベル エンコーディングを同時に実行するエレガントな方法が必要です。

df.apply(LabelEncoder().fit_transform)
ログイン後にコピー

代わりに、特に scikit-learn バージョン 0.20 以降の場合は、OneHotEncoder の使用を検討してください:

OneHotEncoder().fit_transform(df)
ログイン後にコピー

OneHotEncoder は文字列入力をネイティブにサポートし、ワンホット エンコードされたベクトルを生成します.

別の方法として、さまざまな列の LabelEncoder インスタンスを制御する必要がある場合、または列のサブセットのみをエンコードする必要がある場合は、ColumnTransformer を使用できます。

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder

transformer = ColumnTransformer(
    transformers=[('labels', LabelEncoder(), ['column1', 'column2'])],
)

transformed_data = transformer.fit_transform(df)
ログイン後にコピー

ColumnTransformer を使用すると、次のことができます。エンコードする列を指定し、個別の LabelEncoder インスタンスを維持することで、データ準備の柔軟性が向上します。

以上がScikit-Learn で複数の列にわたってラベル エンコーディングを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート