什么是分桶?

机器算法验证 机器学习 数据集 数据预处理
2022-03-17 00:31:02

我一直在寻找对机器学习中“分桶化”的明确解释,但没有运气。到目前为止,我所理解的是,分桶类似于数字信号处理中的量化,其中一系列连续值被一个离散值替换。它是否正确?

应用分桶的优缺点是什么(除了丢失信息的明显影响)?关于如何应用分桶有任何经验法则吗?在应用机器学习之前应用分桶是否有任何指导方针/算法?

2个回答

这是一个广泛的话题,您会遇到一系列为什么数据应该或已经被分桶的原因。并非所有这些都与预测准确性有关。

首先,这是一个建模者可能想要分桶的示例。假设我正在构建一个信用评分模型:我想知道人们拖欠贷款的倾向。在我的数据中,我有一列指示信用报告的状态。也就是说,我从一家评级机构订购了这份报告,该机构返回了,比如说,他们的专有分数,以及一个表明该分数可靠性的分类变量。这个指标的粒度可能比我需要的要细得多。例如,“没有足够的信息来获得可靠的分数”可能会被分解为“20 岁以下”、“最近移居该国”、“没有以前的信用记录”等许多类别。其中许多类别可能人口稀少,因此在回归或其他模型中相当无用。为了解决这个问题,我可能想将类似的类汇集在一起​​,以将统计能力整合到一个“代表性”类中。例如,对我来说,使用“返回好的信息”与“没有返回的信息”的二元指标可能是合理的。以我的经验,分桶的许多应用都属于这个一般人口稀少的类别类型的崩溃。

一些算法在内部使用分桶。例如,适合提升算法的树通常将大部分时间花在汇总步骤中,其中每个节点中的连续数据被离散化并计算每个桶中响应的平均值。这大大降低了寻找合适分割的计算复杂度,而不会因为提升而牺牲太多的准确性。

您也可以简单地接收预先分桶的数据。离散数据更容易压缩和存储——一长串浮点数几乎是不可压缩的,但是当离散为“高”、“中”和“低”时,您可以在数据库中节省大量空间。您的数据也可能来自针对非建模应用程序的来源。当我从分析工作较少的组织收到数据时,这种情况往往会发生。他们的数据通常用于报告,并被汇总到高水平,以帮助外行对报告的可解释性。这些数据仍然有用,但通常会丢失一些电源。

尽管我可能会纠正它,但我认为价值较低的是用于建模目的的连续测量的预分桶。有很多非常强大的方法可以将非线性效应拟合到连续预测变量,而 buckeization 消除了您使用这些的能力。我倾向于认为这是一种不好的做法。

根据文章“高级与低级数据科学”分桶是

分桶步骤(有时称为多变量分箱)包括识别具有高预测能力的指标(以及 2-3 个指标的组合),将它们适当地组合和分箱,以减少桶内方差,同时保持桶足够大。

所以我的理解是你贪婪地根据最具预测性的特征对数据进行分类,然后分析子组。