仅用于列中字符值的虚拟变量(忽略浮点数和整数)

数据挖掘 逻辑回归 虚拟变量
2022-02-19 14:56:56

我的数据集由 3000 行和 50 列组成,其中一列(ESTIMATE_FAMILY_CONTRIBUTION)包含所有数值(大约 2000 个不同的值,如 20、30、32 ....),但有一个值作为字符串,例如'No_information'当我为功能(pd.get_dummies())

创建假人(One-Hot Encoded)时,会为原始列创建大约 2000 个新列,即 ESTIMATE_FAMILY_CONTRIBUTION我想要的是只创建两列,一列用于“No_information”,另一列包含所有数值。我该怎么做?

1个回答

对于 3000 个数据集,您有 2000 个不同的值可用。我认为您不应该将其视为分类列。

将“No_information”视为 NaN,并使用与其他列的关系使用最合适的策略进行估算

编辑帖子评论

如果您想将其视为分类,我会建议
- 创建值的“箱” ,例如 <50- 非常低、50-500 - 中等等
- 然后创建 One-Hot 编码数据
- 也使用这种方法,“No_information "应该被视为 NaN。原因是当信息不可用时,它可能是任何东西,即低、高、中。将其视为第四个值将具有较少的信息。
- 尝试不同的垃圾箱/方法,看看哪个产生最好的结果

处理分类特征的高基数- 使用 “编码具有非常高基数
的特征”搜索互联网/SE 这是一个已知的挑战,您将获得大量资源。 - 尝试其他编码方法。查看这些链接 - 超越 OHE图书馆kaggle 帖子