【问题标题】:Shape mismatch issue with OneHotEndcoderOneHotEncoder 的形状不匹配问题
【发布时间】:2021-08-26 16:35:03
【问题描述】:

这是我的代码

from sklearn import preprocessing
from sklearn.preprocessing import OneHotEncoder
labelencoder_X = preprocessing.LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])
onehotencoder = OneHotEncoder(categories=[])
X = onehotencoder.fit_transform(X).toarray()

尝试了很多次后,我无法解决这个错误

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

【问题讨论】:

标签: pandas numpy machine-learning scikit-learn one-hot-encoding


【解决方案1】:

从你的代码来看,你想做什么并不完全清楚,但错误是由于这一行:

onehotencoder = OneHotEncoder(categories=[])

documentation 表示 categories 参数指定返回的 one-hot 编码列的顺序。如果您尝试编码的列中有n 类别,则categories 列表的长度应为n。但是您传递的是一个空列表。如果不指定,categories 的值将默认为 auto,它将自动根据数据确定类别。

为了修复您的错误,请执行以下操作:

onehotencoder = OneHotEncoder()

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 2021-12-20
    • 2019-06-10
    • 2019-03-05
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多