【问题标题】:sklearn OneHotEncoding with ColumnTransformersklearn OneHotEncoding 与 ColumnTransformer
【发布时间】:2020-06-30 22:20:31
【问题描述】:

我的数据集的第 8 列有分类数据。我希望对这些数据进行编码,并且我正在使用 ColumnTransformer。我第一次尝试使用这种方法时使用了代码:

from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
from sklearn.compose import ColumnTransformer

#encoding categorical data for dept column(independent variables)
ct = ColumnTransformer(transformers=[('one_hot_encoder',OneHotEncoder(categories='auto'), [0])],
                       remainder='passthrough')
X = np.array(ct.fit_transform(X), dtype=np.float)

请注意,我正在使用 LabelEncoder 对我的因变量进行编码,并且效果很好。现在的问题是,当我第一次执行此代码时没有错误,但是当我将列索引更改为 [8] 时,我得到一个与索引 [0] 有关的错误。 ValueError: 无法将字符串转换为浮点数:'Emp ID' 我认为这引发了两个问题,首先,我的列标题没有被这样读取,其次,索引没有被更改为 8。

我已添加:drop='first' 希望删除列 [0] 但无济于事

【问题讨论】:

  • 请包含您的表格的一些样本/结构X

标签: python scikit-learn


【解决方案1】:

为什么不使用 Keras to_categorical

from keras.utils.np_utils import to_categorical

X = to_categorical(X)

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 2020-04-11
    • 2020-04-02
    • 1970-01-01
    • 2017-07-01
    • 2023-03-18
    • 2021-09-26
    • 2022-10-04
    • 2021-03-25
    相关资源
    最近更新 更多