数值数据:分箱

分箱(也称为分桶)是一种 特征工程 将不同的数值子范围分组到分箱存储分区。 在许多情况下,分箱会将数值数据转换为分类数据。 例如,假设某个功能 名为 X,其最小值为 15; 最高值为 425借助分箱,您可以使用X 以下五个分箱:

  • 分箱 1:15 到 34
  • 分箱 2:35 到 117
  • 分箱 3:118 到 279
  • 分箱 4:280 到 392
  • 分箱 5:393 到 425

分箱 1 的范围为 15 到 34,因此 X 的每个介于 15 到 34 之间的值 最终出现在分箱 1 中。在这些分箱上训练的模型不会有任何不同 更改为 X 值 17 和 29,因为这两个值都位于分箱 1 中。

特征向量表示 这五个分箱如下:

分箱号Range特征向量
1 15-34 岁 [1.0, 0.0, 0.0, 0.0, 0.0]
2 35-117 人 [0.0, 1.0, 0.0, 0.0, 0.0]
3 118-279 人 [0.0, 0.0, 1.0, 0.0, 0.0]
4 280-392 [0.0, 0.0, 0.0, 1.0, 0.0]
5 393-425 人 [0.0, 0.0, 0.0, 0.0, 1.0]

即使 X 是数据集内的单列,分箱也会产生模型 将 X 视为五个独立的特征。因此,模型学习 单独的权重。

分箱是扩缩的一个很好的替代方案 或裁剪时, 满足以下条件:

  • 特征与 label 弱或不存在。
  • 对特征值进行聚类时。

分箱可能会让人感觉不合常理,因为 上一个示例以相同方式处理值 37 和 115。但当 因此,对于某个特征,分箱比线性特征 代表数据。

分箱示例:购物者数量与温度的关系

假设您要创建一个模型来预测 这里显示了 与购物者数量进行比较:

图 9.包含 45 个点的散点图。45 积分是天生的
            分为三个组
图 9. 包含 45 个点的散点图。

该曲线图显示,当初在 Google Play 上购物时, 温度将最为舒适。

您可以将特征表示为原始值: 则特征向量中的特征向量为 35.0。这个想法最好吗?

训练期间,线性回归模型会针对每个单词的 功能。因此,如果将温度表示为单个特征,则 35.0 的 5 倍(即 35.0 的五分之一) 则预测为 7.0。然而,图表并不 标签和标签之间的线性关系 特征值。

图表推荐了以下子范围中的三个聚类:

  • 分箱 1 的温度范围为 4-11。
  • 分箱 2 的温度范围为 12-26。
  • 分箱 3 的温度范围为 27-36。
图 10。上述散点图包含 45 个点
            但加上竖线,以使分箱更明显。
图 10.分为三个分箱的散点图。

模型会为每个分箱学习单独的权重。

虽然可以创建三个以上的分箱, 通常不适合这么做,原因如下:

  • 只有当分箱和标签之间存在关联时,模型才能学习 有足够的样本。在给定的示例中,3 个分箱中 包含至少 10 个样本,这可能足以满足训练需求。 共有 33 个单独的分箱 没有分箱包含足够的样本供模型进行训练。
  • 为每种温度设置单独的分箱,结果如下: 33 个独立的温度功能。不过,您通常应该尽可能减小 模型中的特征数量。

练习:检查您的理解情况

下面的曲线图显示了每 0.2 度的房价中位数 神话国家自由岛的纬度:

图 11. 每个纬度的房屋价值图。最低的房屋
            约为 327,最大值为 712。纬度跨度 41.0
            44.8 之间,其中有一个点表示每
            纬度 0.2 度。模式很不规则,
            两个不同的星团(一个星团介于纬度 41.0 和 41.8 之间,
            和另一个星团在纬度 42.6 到 43.4 之间)。
图 11. 每 0.2 度纬度的房屋中间值。

图中显示了住宅值和纬度之间的非线性模式, 因此将纬度表示为浮点值可能没有什么帮助 使模型能够做出良好的预测。也许对纬度进行分桶 想法?

最佳的分桶策略是什么?
不要分桶。
鉴于大多数图表的随机性,这可能是 最佳策略。
创建四个存储分区:
  • 41.0 至 41.8
  • 42.0 至 42.6
  • 42.8 至 43.4
  • 43.6 至 44.8
模型很难为产品找到单个预测权重 第二个或第四个垃圾桶中的所有房屋, 几个示例。
将每个数据点设置为各自的存储分区。
只有当训练集包含足够的数据时, 表示每 0.2 度纬度。一般来说, 往往集中在城市附近,在其他区域相对稀缺 。

分位数分桶

分桶可创建分桶边界, 或每个分桶中的样本数完全匹配或几乎相等。分位数分桶 大部分情况下隐藏离群值。

为了说明分位数分桶所解决的问题,请考虑以下 如下图所示的等间距分区,其中每个分区 10 个存储分区中的 10 个表示正好 10,000 美元的跨度。 请注意,范围从 0 到 10,000 包含数十个样本 但 50,000 到 60,000 的分桶只包含 5 个样本。 因此,模型有足够的样本来使用 0 到 10000 个 但对于 50,000 到 60,000 个存储分区,没有足够的样本进行训练。

图 13。汽车价格与汽车销售量的对比情况
            价格。汽车销量最高达到 6000 辆。
            在 6,000 辆以上的价格上
            降低,以 40, 000 到 4,000 之间的汽车售价非常少
            6 万。曲线图分为 6 个大小相等的存储分区,每个存储分区
            10,000 之间的数字。第一个存储分区包含了所有售出的汽车
            介于价格 0 和 10,000 之间时
            包含价格在 10,001 到 10,000 之间的所有汽车
            20,000 等。第一个存储分区包含许多样本;每
            后续存储分区包含的样本较少。
图 13. 有些存储分区包含很多汽车;其他存储分区包含 汽车数量少之又少。

相比之下,下图则使用分位数分桶来划分汽车价格 分箱,每个分桶中的样本数量大致相同。 请注意,有些分箱的价格范围较窄,而其他分箱的价格范围较窄 价格范围很广。

图 14.与上图相同,但分位数分桶除外。
            也就是说,分桶现在具有不同的大小。第一个存储分区
            包含从 0 到 4,000 的销售汽车,第二个存储分区包含
            汽车销量为 4,001 到 6,000 辆第六个存储分区包含
            汽车销量为 25,001 到 60,000 辆。每个分桶中的汽车数量
            大致相同
图 14. 分桶为每个存储分区提供大致相同的 汽车数量。