【问题标题】:apply label encoder for multiple columns in train and test dataset [duplicate]为训练和测试数据集中的多列应用标签编码器[重复]
【发布时间】:2020-11-21 01:20:06
【问题描述】:

我有一个数据集,其中包含多个列,这些列具有字符串格式的值。现在我需要使用 labelEncoder 将这些文本列转换为数值。在下面的 e,g y 是我的 tain 数据集的目标,并且 A0 到 A13 是不同的特征。还有 50 多个功能,但我在这里提供了一个子集。现在我如何将 labelencoder 应用于从 A0 到 A8 的数据集,并创建一个新的编码数据帧来创建模型? 我知道我们可以做类似下面的事情,但这会说只编码一列。我想将编码器应用于从 A0 到 A8 的所有列,然后将数据提供给模型。我该怎么做?

    from sklearn.preprocessing import LabelEncoder
    gender_encoder = LabelEncoder()
    y = gender_encoder.fit_transform(y)

下面的示例数据

           y       A0 A1  A2 A3 A4  A5 A6 A8  A10  A12  A13
    0     130.81   k  v  at  a  d   u  j  o    0    0    1
    1      88.53   k  t  av  e  d   y  l  o    0    0    0
    2      76.26  az  w   n  c  d   A  j  A    0    0    0
    3      80.62  az  t   n  f  d   A  l  e    0    0    0
    4      78.02  az  v   n  f  d   h  d  n    0    0    0

【问题讨论】:

    标签: python dataframe machine-learning scikit-learn label-encoding


    【解决方案1】:

    您可以使用ColumnTransformerPipeline 对所有分类列进行编码。之后还可以为数值列添加转换。

    categorical_features = ['A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A8']
    categorical_transformer = Pipeline(steps=[('le', LabelEncoder())])
    
    preprocessor = ColumnTransformer(transformers=[('cat', 
                                                     categorical_transformer, 
                                                     categorical_features)])
    pipeline = Pipeline(steps=[('preprocessor', preprocessor)])
    
    pipeline.fit(X_train)
    

    【讨论】:

      【解决方案2】:

      您可以使用 sklearn 中的 ColumnTransformer:

      from sklearn.compose import make_column_transformer
      from sklearn.preprocessing import OneHotEncoder
      
      col_trans = make_column_transformer((OneHotEncoder(), ["A0:A8"]), remainder = "passthrough")
      

      您可以在 [ ] 中列出各个列并指定如何处理“剩余列”

      【讨论】:

        猜你喜欢
        • 2019-05-13
        • 2020-11-21
        • 2021-10-19
        • 2018-10-23
        • 2018-05-28
        • 2020-03-09
        • 2021-05-20
        • 2021-08-24
        • 2019-10-07
        相关资源
        最近更新 更多