ホームページ  >  記事  >  バックエンド開発  >  One Hot Encoding は Python のカテゴリ変数にどのように対処しますか?

One Hot Encoding は Python のカテゴリ変数にどのように対処しますか?

DDD
DDDオリジナル
2024-11-11 12:38:03319ブラウズ

How does One Hot Encoding address categorical variables in Python?

Python でのワン ホット エンコーディング: カテゴリ変数の対処

問題の概要

機械学習の分類問題では、大部分がカテゴリカル変数の使用には、特定のエンコード技術が必要となるという課題が生じます。そのような手法の 1 つはホット エンコーディングであり、データを分類子に渡す前に一般的に使用されます。

アプローチ 1: Pandas の pd.get_dummies を利用する

一般的なアプローチの 1 つは、pd を使用することです。パンダからのget_dummys。カテゴリ列を複数のダミー列に変換し、それぞれが異なるカテゴリを表します。

例:

import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
Out[]: 
     a    b    c
0  1.0  0.0  0.0
1  0.0  1.0  0.0
2  0.0  0.0  1.0
3  1.0  0.0  0.0

または、接頭辞を指定すると、ダミーごとに複数の列が作成されます。

df = pd.DataFrame({
  'A':['a','b','a'],
  'B':['b','a','c']
})
df
Out[]: 
   A  B
0  a  b
1  b  a
2  a  c

one_hot = pd.get_dummies(df['B'], prefix='B')
df = df.drop('B',axis = 1)
df = df.join(one_hot)
df  
Out[]: 
       A  Ba  Bb  Bc
    0  a   0   1   0
    1  b   1   0   0
    2  a   0   0   1

アプローチ 2: Scikit-learn の採用

Scikit-learn の OneHotEncoder は、ワン ホット エンコーディングに対する堅牢かつ柔軟なアプローチを提供します。

例:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 1]]).toarray()
array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.]])

提供されたコード スニペットはサンプル データのフィッティングと変換を示し、バイナリ ワンホット エンコーディングを示しています。

計算リソースを慎重に検討してください。 1 回のホット エンコーディング、特に大規模なデータセットの場合に必要です。効率的なデータ処理と特徴選択技術は、パフォーマンスを最適化し、適切な分類結果を達成するために非常に重要です。

以上がOne Hot Encoding は Python のカテゴリ変数にどのように対処しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。