数据集特征编码和缩放

问题描述 投票:0回答:1

我有一个具有非序数分类特征的数据集。在训练机器学习模型(线性 SVC)之前,转换它们(编码 + 缩放)的最佳方法是什么?

我尝试过的事情:

  1. 标签编码 - 这有效。但是缩放没有意义,因为特征中的不同类别没有任何特定的顺序。

  2. One-Hot 编码 - 特征中有数千个独特的类别,这通过创建数千个列而使 ML 模型变得复杂。

  3. 计数编码 - 我的训练-测试分割没有训练集中某个特征的所有独特类别,当我对这些特征进行计数编码时,这会在测试集中引入 NaN。

python machine-learning scikit-learn encoding
1个回答
0
投票

要解决测试集中有一些训练集中没有的唯一值的问题,您可以尝试执行以下操作:

  1. 使用
    df = train.append(test)
  2. 合并训练数据集
  3. 应用您之前使用过的编码
  4. 使用以下方法将数据集拆分回训练和测试:
  • train = df.head(len(train))

  • test = df.tail(len(test))

根据我的经验,我可以说 LabelEncoding 和 OneHotEncoding 是编码非序数特征的最佳技术。

© www.soinside.com 2019 - 2024. All rights reserved.