如何处理数据集中具有大/无限值的列以进行 ML 分类

数据挖掘 机器学习 Python 分类 缺失数据
2022-03-02 11:04:26

使用公式计算一列(公式不涉及任何日志函数,只是一个 group by with .sum()),但正如预期的那样,该列将导致infinite/exponential values如下所示:

-inf
 nan
 inf
-3.000e+32
 7.3297+23 ...etc (similar data)

我的疑问是我应该如何处理这个列作为I could also not avoid this column for prediction二进制分类问题。在模型分类器中使用此列之前要使用哪些技术。

谢谢!

1个回答

取决于您要运行的模型。我将解释一下线性模型和决策树集成(梯度提升和随机森林)

决策树

没什么可做的,当树建成时,每个分支都会选择一个分裂。如果有大值的信息增益,它会选择它并进行拆分。

一些实现,因为 catboost 有一个量化。最终可以以 95% 的分位数进行拆分,这将适用于较大的值。

广义线性模型

您将需要更改此设置。我的建议是根据列的值创建一个特征(如果 df.col1> 9999: 1 else 0)。然后按一定的阈值进行Winsorizing 。