我试图在鸢尾花数据集中对目标列(“Species”)使用独热编码器,但是出现了以下错误:
ValueError:期望2D数组,得到1D数组: 如果您的数据仅具有一个特征,请使用array.reshape(-1, 1)重新整形您的数据;如果它包含单个样本,请使用array.reshape(1,-1)。
我试图对单个分类列进行编码并拆分成多个列(通常的编码方式)
ValueError:期望2D数组,得到1D数组: 如果您的数据仅具有一个特征,请使用array.reshape(-1, 1)重新整形您的数据;如果它包含单个样本,请使用array.reshape(1,-1)。
Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
0 1 5.1 3.5 1.4 0.2 Iris-setosa
1 2 4.9 3.0 1.4 0.2 Iris-setosa
2 3 4.7 3.2 1.3 0.2 Iris-setosa
3 4 4.6 3.1 1.5 0.2 Iris-setosa
4 5 5.0 3.6 1.4 0.2 Iris-setosa
我在谷歌上搜索了这个问题,发现大多数scikit learn估计器需要一个二维数组而不是一维数组。
同时,我还发现我们可以尝试将带有索引的数据框传递给编码单列,但它没有起作用。
onehotencoder = OneHotEncoder(categorical_features=[df.columns.tolist().index('pattern_id')
X = dataset.iloc[:,1:5].values
y = dataset.iloc[:, 5].values
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder= LabelEncoder()
y = labelencoder.fit_transform(y)
onehotencoder = OneHotEncoder(categorical_features=[0])
y = onehotencoder.fit_transform(y)
我试图对单个分类列进行编码并拆分成多个列(通常的编码方式)
get_dummies
对此非常有用。 - Rorschach