【问题标题】:How to deal with categorical features having large number of levels in it如何处理其中包含大量级别的分类特征
【发布时间】:2017-08-09 15:01:42
【问题描述】:

我正在研究具有维度的 R 数据集

dim(adData)
[1] 15844717       11

在 11 个功能中,

一个特性是在 15844717 个中具有 273596 个(用作 id 的随机整数)唯一值。

第二个特点是在 15844717 中拥有 884353(用作 id 的随机整数)唯一值。

我的困惑是是否将它们转换为因子,因为具有大量级别的分类变量会在建模时产生问题,或者请建议如何处理它们。

我是数据科学的新手,以前从未处理过大型数据集。

【问题讨论】:

    标签: r categorical-data


    【解决方案1】:

    一个变量的~300k 类别肯定会导致计算问题。我将首先退后一步,检查这个变量的性质及其与手头预测的相关性。在不知道数据来源的情况下,很难给出具体的建议。

    如果它确实是一个分类变量,那么将 id 保留为数字变量将是愚蠢的,因为 id 的比例和顺序可能毫无意义。

    是否可以将级别分成更少但仍然有意义的类别?

    示例 1:如果 id 是美国的邮政编码,则可能有 40,000 个唯一值。这些可以分组到州或地区,将级别数减少到 50 或更少。

    示例 2:如果 id 是来自电子商务网站的产品 id,它们可以按产品类别或子类别进行分组。可以使用的不同值会少得多。

    另一个选项是检查每个类别的相对频率。如果有几个非常常见的类别,有数千个稀有类别,您可以保留常见的关卡并将稀有关卡归为“其他”类别。

    【讨论】:

    • 数据来自电子商务网站。其中一项功能是广告网站名称,另一项是商品 ID。我会尝试根据相对频率将它们组合起来。
    猜你喜欢
    • 2021-05-08
    • 2017-05-26
    • 2021-07-27
    • 2021-12-09
    • 2013-06-23
    • 2015-04-27
    • 2018-04-03
    • 2015-11-25
    • 2018-01-15
    相关资源
    最近更新 更多