Ich muss das unabhängige Feld von der Zeichenfolge in die arithmetische Notation umwandeln. Ich verwende OneHotEncoder für die Transformation. Mein Datensatz enthält viele unabhängige Spalten, von denen einige wie folgt lauten:
Country | Age
--------------------------
Germany | 23
Spain | 25
Germany | 24
Italy | 30
Ich muss die Country-Spalte wie codieren
0 | 1 | 2 | 3
--------------------------------------
1 | 0 | 0 | 23
0 | 1 | 0 | 25
1 | 0 | 0 | 24
0 | 0 | 1 | 30
Es gelingt mir, die Wunschtransformation über OneHotEncoder as zu erreichen
#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()
Jetzt erhalte ich die Abschreibungsnachricht zur Verwendung von categories='auto'
. Wenn ich das tue, wird die Transformation für alle unabhängigen Spalten wie Land, Alter, Gehalt usw. durchgeführt.
Wie wird die Transformation nur für die 0. Spalte des Datensatzes erreicht?
Ich hatte das gleiche Problem und Folgendes funktionierte für mich:
OneHotEncoder(categories='auto', sparse=False)
Hoffe das hilft
Verwenden Sie den folgenden Code: -
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)