it-swarm.com.de

ValueError: Formfehlanpassung: Wenn Kategorien ein Array sind, muss es eine Form haben (n_features,)

Ich habe einen einfachen Code erstellt, um OneHotEncoder zu implementieren.

from sklearn.preprocessing import OneHotEncoder
X = [[0, 'a'], [0, 'b'], [1, 'a'], [2, 'b']]
onehotencoder = OneHotEncoder(categories=[0])
X = onehotencoder.fit_transform(X).toarray()

Ich möchte nur die Methode fit_transform Für X für den Index 0 Verwenden, also bedeutet dies für [0, 0, 1, 2] Wie das, was Sie in X. Aber es verursacht einen Fehler wie diesen:

ValueError: Shape mismatch: if categories is an array, it has to be of shape (n_features,).

Kann jemand dieses Problem lösen? Ich stecke fest

4
arga wirawan

Die Methode pandas.get_dummies() kann dies auch wie folgt tun:

import numpy as np
import pandas as pd
X = np.array([[0, 'a'], [0, 'b'], [1, 'a'], [2, 'b']])
X = np.array(pd.concat([pd.get_dummies(X[:, 0]), pd.DataFrame(X[:, 1])], axis = 1))
0
shubh