我们先快速回顾一下机器学习速成课程中的核心理念。请查看下图中的分布情况。
图 1:房屋价格与纬度。
对于以下问题,请点击所需的箭头以查看您的答案:
请参考图 1。如果您认为纬度可以很好地预测住房价值,是否应将纬度保留为浮点值?原因是什么?(假设这是一个线性模型。)
是 - 如果纬度是数据集中的浮点值,则不应更改。
如果您将这些浮点值馈送到网络,则会尝试学习特征与标签之间的线性关系。但线性关系不太可能用于纬度。纬度增加(例如,从 34 度升高到 35 度)可能会使模型的输出产生一定程度的变化,而不同的角度增加(比如从 35 度增加到 36 度)可能会产生不同的变化。这是非线性行为。
否 - 纬度和住房值之间没有线性关系。
您怀疑各个纬度和住宅值是相关的,但这种关系不是线性的。
在纬度示例的情况下,您需要将纬度划分为多个存储分区,以便了解每个存储分区的住房值方面的不同之处。这种使用一组阈值将数值特征转换为分类特征的过程称为分桶(或分箱)。在此分桶示例中,边界的间距相等。
图 2:房屋价格与纬度,现在分成几个存储分区。
分位数分桶
让我们重新审视我们添加的存储分区中的汽车价格数据集。对于每个存储分区一个特征,模型为 >45000 范围中的单个示例使用的容量与 5000-10000 范围中的所有示例相同。似乎有点浪费。我们可以如何改善这种情况?
图 3:以不同价格销售的汽车数量。
问题在于,等距分区无法很好地捕获这种分布。解决方案就在于创建分桶具有相同数量的分桶。这种技术称为分位数分桶。例如,下图将汽车价格划分为分位数存储分区。为了在每个存储分区内获得相同数量的样本,某些桶所包含的价格范围较窄,而其他部分的价格范围则非常广泛。
图 4:分位数分桶提供的每个分桶的车辆数量大致相同。
分桶摘要
如果您选择对数值特征进行分桶,请明确如何设置边界以及要应用的分桶类型:
- 边界相等的区块:边界是固定的,并且包含相同的范围(例如,0-4 度、5-9 度、10-14 度,或 5000-9999 美元、10000-14999 美元和 15000-19999 美元)。一些桶可以包含很多点,而其他桶可以包含很少或没有点。
- 具有分位数边界的分桶:每个分桶的点数相同。边界并非固定的,可以包含窄范围或宽范围的值。