我需要对数据进行编码以训练 XGBRegressor 模型。我收到了一个包含大量行的 df,它有很多分类特征,其中之一是 box_id,其 ID 代码为“AAA9A8A”。
ids 为预测提供了有意义的数据并且是唯一的,如果我对数据进行热编码,数据集会变得太大,因为其中有几个分类列和唯一数据。
我读到不建议将标签编码器用于回归问题,因为它可能会在不存在的类别之间引入意想不到的关系。
我该如何进行?
我该如何进行?
您应该升级到 XGBoost 1.6 或更新版本。较新的 XGBoost 版本可以原生处理分类特征,它们不需要任何外部单热编码(这会导致这里出现问题):
regressor = XGBRegressor(tree_method = "hist", enable_categorical = True)
您可以尝试其他方式对数据集进行编码,例如标签编码。或者您可以创建给定数据的箱子,因为这将有助于减少数据大小,然后选择一种热编码。