我有一个包含 100k 行、8 个输入特征的输入数据,我正在尝试预测 y(二进制 1/0)。
但是所有的 X 都是分类变量(严格来说是名义变量,而不是序数)。有的8级,有的20级。
数据高度不平衡。y 的 0.5% 是 1。
我已经清理了数据并对所有 8 个输入变量应用了单热编码。查阅了一些论文,看到了一些使用 MCA 的示例,但是由于输入维度很小,我认为没有必要应用 MCA。
然后我开始建模(80-20 分层抽样)。由于数据高度不平衡,我使用 f1-score 来评估模型性能。
1:决策树分类器。测试数据集上的 f1 得分为 0.648。
决策树分类器上的 gridsearchcv :测试中的 f1 0.6363 决策树分类上的
随机搜索:测试中的 f1 0.6402。
2:Adaboost:f1-score of 0.499
3:randomforestclassifier:0.65
4:GradientboostingClassifier:0.499
5:extraTressClassifier:0.65
我知道数据高度不平衡。但是为什么与其他方法相比,提升模型的性能“差得多”?我记得即使是提升模型,他们也在每个阶段使用树模型。
这是我遇到的一个中等帖子。https://towardsdatascience.com/one-hot-encoding-is-making-your-tree-based-ensembles-worse-heres-why-d64b282b5769 但它没有给出明确的解决方案/答案。
有人可以给出一些想法如何处理这样的数据吗?对于仅将分类变量作为输入的不平衡数据,有哪些更好的模型?