【问题标题】:High cardinal Categorical features into numerics将高基数分类特征转化为数字
【发布时间】:2018-12-09 19:43:24
【问题描述】:

在大多数学术示例中,我们曾经使用get_dummiesOneHotEncoder 转换分类特征。假设我想使用Country 作为特征,并且在数据集中我们有 100 个独特的国家。当我们在国家/地区应用 get_dummies 时,我们将获得 100 列,并且模型将使用 100 个国家/地区列和其他特征进行训练。

可以说,我们已将该模型部署到生产中,但我们只收到了 10 个国家/地区。当我们使用get_dummies 对数据进行预处理时,模型将无法进行预测,因为“模型训练的特征数量与传递的特征不匹配”,因为我们正在传递 10 个国家/地区列和其他特征。

我看到了下面的文章,我们可以使用监督比率、证据权重来计算分数。但是当我们要预测生产中的目标时如何计算分数,需要将哪个国家分配给正确的数字。

https://www.kdnuggets.com/2016/08/include-high-cardinality-attributes-predictive-model.html

你能帮我理解如何处理这种情况吗?

【问题讨论】:

  • 对于高基数分类特征,最好使用 CatBoost - 接受此类数据的梯度提升,或将目标编码作为预处理。它通常会提供更好的质量。

标签: python machine-learning data-science data-processing


【解决方案1】:

你可以做两件事。

  1. 在合并训练集和测试/验证集数据之后应用 OHE。
  2. 跳过 OHE 并应用 StandardScaler,因为“如果一个特征的方差比其他特征大几个数量级,它可能会主导目标函数,并使估计器无法按预期正确地从其他特征中学习。”

当我在任何分类数据集中有多个独特的特征并且可能导致我的测试/验证集时,我通常会尝试第二个选项 请随时纠正我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2019-11-13
    • 2021-10-23
    • 2016-01-07
    相关资源
    最近更新 更多