Учитывая массив текстовых данных,Преобразования текстовых данных в sklearn трубопроводе
X = np.array(['cat', 'dog', 'cow', 'cat', 'cow', 'dog'])
Я хотел бы использовать трубопровод sklearn для получения вывода, как
np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 0, 1], [0, 1, 0]])
Моей первой попыткой
pipe = Pipeline([
('encoder', LabelEncoder()),
('hot', OneHotEncoder(sparse=False))])
print(pipe.fit_transform(X))
поднимает TypeError: fit_transform() takes exactly 2 arguments (3 given)
, согласно this issue. Я попытался отредактировать подпись на LabelEncoder, так что SaneLabelEncoder().fit_transform(X)
дает [0 2 1 0 1 2]
, но затем
pipe = Pipeline([
('encoder', SaneLabelEncoder()),
('hot', OneHotEncoder(sparse=False))])
print(pipe.fit_transform(X))
дает [[ 1. 1. 1. 1. 1. 1.]]
. Любые предложения по достижению желаемого результата?
Это идеально - вы могли бы добавить, что он работает в трубопроводе, как один шаг. В частности, если 'pipe = Pipeline (('encoder', LabelBinarizer()),])', то 'print (pipe.fit_transform (X))' работает, как вы описываете. – colcarroll