web-dev-qa-db-ja.com

OneHotEncoder categorical_featuresの減価償却、特定の列の変換方法

独立したフィールドを文字列から算術表記に変換する必要があります。私は変換にOneHotEncoderを使用しています。私のデータセットには多くの独立した列があり、そのうちのいくつかは次のとおりです。

Country     |    Age       
--------------------------
Germany     |    23
Spain       |    25
Germany     |    24
Italy       |    30 

私は国の列を次のようにエンコードする必要があります

0     |    1     |     2     |       3
--------------------------------------
1     |    0     |     0     |      23
0     |    1     |     0     |      25
1     |    0     |     0     |      24 
0     |    0     |     1     |      30

私はOneHotEncoderを使用して欲望変換を取得することに成功しました

#Encoding the categorical data
from sklearn.preprocessing import LabelEncoder

labelencoder_X = LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])

#we are dummy encoding as the machine learning algorithms will be
#confused with the values like Spain > Germany > France
from sklearn.preprocessing import OneHotEncoder

onehotencoder = OneHotEncoder(categorical_features=[0])
X = onehotencoder.fit_transform(X).toarray()

現在、categories='auto'を使用するための減価償却メッセージを取得しています。そうすると、国、年齢、給与など、すべての独立した列で変換が行われます。

データセットの第0列のみを変換する方法は?

10
Hassaan

私は同じ問題を抱えていて、次のことがうまくいきました:

OneHotEncoder(categories='auto', sparse=False)

お役に立てれば

0
user1970528

次のコードを使用します:-

from sklearn.preprocessing import OneHotEncoder

from sklearn.compose import ColumnTransformer

columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder='passthrough')

X = np.array(columnTransformer.fit_transform(X), dtype = np.str)

print(X)
0