web-dev-qa-db-ja.com

ValueError:形状の不一致:カテゴリが配列の場合は、形状でなければなりません(n_features、)

OneHotEncoderを実装する簡単なコードを作成しました。

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

インデックス_fit_transform_のXに対して_0_というメソッドを使用したいだけなので、Xのように_[0, 0, 1, 2]_を意味します。ただし、次のようなエラーが発生します。

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

誰でもこの問題を解決できますか?私はそれにこだわっています

4
arga wirawan

pandas.get_dummies()メソッドも以下の方法で同じことができます。

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