如何将回归转换为分类?

数据挖掘 机器学习 回归 聚类 统计数据 密度估计
2022-02-15 07:34:18

所以我有一堆功能X的回归问题,以及数量(价格$)的标签。如何将其转换为分类问题?我已经阅读了有关将标签从连续转换为分类的内容,例如在某些点上可能会出现 0-50(0 类)、51-100(1 类)等等,直到 500 可能(这里阈值保持到 50)。这种方法直观上是无效的,即没有数据位于 51-100。有什么方法可以缓解这个问题,或者是否有任何有效的方法可以做到这一点?就像在聚类中我们可以使用密度估计一样,我们可以在这里做到吗?

3个回答

为了增加可用于将回归问题转换为分类问题的方法的数量,您可以使用离散百分位数来定义类别而不是数值。例如,由此您可以预测价格是否在前 10(20、30 等)百分位。numpy.percentile(X[i], percentile)例如,您可以使用 Python 的方法轻松找到这些值。

这种类型的标签将对数据的分布设置阈值。

您要转换的任务实际上并不是分类本身,而是序数分类。我指出这一点是因为有专门处理这个问题的实现。此外,您要问的任务是如何正确bin设置值。为此,您可以将分箱称为预处理步骤。我敢肯定,例如,如果您搜索“binning python”,您会发现各种实现。

由于您的输出是一维的,因此对输出进行聚类相当于固定阈值。您能做的最好的事情就是使用领域知识来区分不同的类别。您还可以绘制价格日志的直方图,看看是否存在混合高斯,并尝试将它们分成几类。