如何对不同特征工程过程中的特征进行标准化和归一化?

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

我正在使用一个数据集,其中每个样本都包含数字和文本数据。因此,采用多种方法从数据集中构建训练特征矩阵。对于数据集中的每个样本,我从 3 个部分构建一个向量表示。

  1. 段落文本的 Doc2Vec 向量表示:我使用段落向量

    gensim 实现将文本编码为 
    [-5, 5]

    之间的 100 维浮点数向量
  2. 文本标签的单热编码向量:数据集中的每个样本都有零个或多个文本标签,我聚合了数据集中使用的所有唯一标签并将其编码为仅包含 0 和 1 的二进制数组。例如,如果完整的标签集是

    [Python, Java, JavaScript, C++]
    并且样本包含标签
    Python
    Java
    ,则结果向量将为
    [1, 1, 0, 0]

  3. 数值数据和分类数据:

    • 数字数据字段按原样内置到特征向量中
    • 分类数据映射为整数并构建到特征向量中

生成的特征矩阵如下所示

[
  [-1.02, 1.33, 2.35, -0.48, ... -4.11, 1, 0, 1, 1, 0, 0, ..., 1, 0, 235, 11.5, 333],
  [-0.22, 3.03, 1.95, -0.48, ... -4.11, 0, 1, 1, 1, 0, 0, ..., 0, 0, 233, 22, 333],
  [-2.07, -1.33, -2.35, -0.48, ... -4.11, 1, 1, 0, 1, 1, 0, ..., 1, 1, 102, 13, 333],
  [-4.32, 4.33, 1.75, -0.48, ... -4.11, 0, 0, 0, 1, 0, 1, ..., 1, 0, 98, 8, 333],
]

我应该对数据集应用任何标准化或归一化吗?如果是这样,我应该在连接功能的不同部分之前还是之后进行?

我正在使用 scikit-learn,我使用的主要算法是梯度提升。

python machine-learning scikit-learn data-science
1个回答
2
投票

是的,您需要单独处理特征:您应该仅对原始数字特征应用标准化或归一化,不应该对 doc2vec、OHE 或编码分类特征执行此操作。

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