分桶

我们先快速回顾一下机器学习速成课程中的核心理念。请查看下图中的分布情况。

每个纬度的房屋数的图表。该图极其不规则,在纬度 36 左右包含鼓叶,在纬度 34 和 38 左右出现巨大的峰值。 图 1:房屋价格与纬度。

 

对于以下问题,请点击所需的箭头以查看您的答案:

请参考图 1。如果您认为纬度可以很好地预测住房价值,是否应将纬度保留为浮点值?原因是什么?(假设这是一个线性模型。)
是 - 如果纬度是数据集中的浮点值,则不应更改。
如果您将这些浮点值馈送到网络,则会尝试学习特征与标签之间的线性关系。但线性关系不太可能用于纬度。纬度增加(例如,从 34 度升高到 35 度)可能会使模型的输出产生一定程度的变化,而不同的角度增加(比如从 35 度增加到 36 度)可能会产生不同的变化。这是非线性行为。
否 - 纬度和住房值之间没有线性关系。
您怀疑各个纬度和住宅值是相关的,但这种关系不是线性的。

在纬度示例的情况下,您需要将纬度划分为多个存储分区,以便了解每个存储分区的住房值方面的不同之处。这种使用一组阈值将数值特征转换为分类特征的过程称为分桶(或分箱)。在此分桶示例中,边界的间距相等。

上图中的纬度与房价图。不过,这一次该图在整数纬度之间分成了 11 个“分箱”的数。

 

图 2:房屋价格与纬度,现在分成几个存储分区。

分位数分桶

让我们重新审视我们添加的存储分区中的汽车价格数据集。对于每个存储分区一个特征,模型为 >45000 范围中的单个示例使用的容量与 5000-10000 范围中的所有示例相同。似乎有点浪费。我们可以如何改善这种情况?

按该价格出售的汽车数量的图表。系统会将该图表分为 10 个大小相等、范围为 5000(汽车价格)的存储分区。前三个存储分区包含很多示例,但最后七个存储分区包含的样本非常少。

图 3:以不同价格销售的汽车数量。

 

问题在于,等距分区无法很好地捕获这种分布。解决方案就在于创建分桶具有相同数量的分桶。这种技术称为分位数分桶。例如,下图将汽车价格划分为分位数存储分区。为了在每个存储分区内获得相同数量的样本,某些桶所包含的价格范围较窄,而其他部分的价格范围则非常广泛。

与图 3 相同,分位数桶除外。也就是说,现在存储分区的大小不同。最小存储分区的范围约为 1000 美元,最大的存储分区的范围约为 25000 美元。现在,每个桶中的汽车数量大致相同。

图 4:分位数分桶提供的每个分桶的车辆数量大致相同。

分桶摘要

如果您选择对数值特征进行分桶,请明确如何设置边界以及要应用的分桶类型:

  • 边界相等的区块:边界是固定的,并且包含相同的范围(例如,0-4 度、5-9 度、10-14 度,或 5000-9999 美元、10000-14999 美元和 15000-19999 美元)。一些桶可以包含很多点,而其他桶可以包含很少或没有点。
  • 具有分位数边界的分桶:每个分桶的点数相同。边界并非固定的,可以包含窄范围或宽范围的值。