我正在训练GBC。它是具有 12 类输出的多类分类器。我的问题是当我对火车数据进行预测时,我没有得到 100% 的准确率。事实上,错误预测发生在占主导地位的类集上。(我的输入是不平衡的,我会创建合成数据。)
以下是详细信息:输入数据大小:输入形状:(20744, 13)(对输出和输入进行标签编码和最小最大缩放)
数据缩放前的分布:
[(0, 443), **(1, 6878),** (2, 177), (3, 1255), (4, 311), (5, 172), (6, 1029), (7, 268), (8, 131), (9, 54), (10, 1159), (11, 340), (12, 1370),
**(13, 7157)**]
使用随机过采样器进行过采样
[(0, 7157), (1, 7157), (2, 7157), (3, 7157), (4, 7157), (5, 7157), (6, 7157), (7, 7157), (8, 7157), (9, 7157), (10, 7157), (11, 7157), (12, 7157), (13, 7157)]
预处理后的最终形状: 输入形状 X: (100198, 12)
目标形状 Y: (100198, 1)
模型:est = GradientBoostingClassifier(verbose=3, n_estimators=n_est, learning_rate=0.001, max_depth =24, min_samples_leaf=3, max_features=3)
输出:
ACC: 0.9632
Feature importance:
[0.09169515 0.01167983 0. 0. 0.11126567 0.14089752
0.12381927 0.10735138 0.1344401 0.13874134 0.08111774 0.058992 ]
Accuracy score on Test data: 19303
[[1406 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 19 1024 4 32 4 5 24 5 0 0 24 8 48 211]
[ 0 0 1434 0 0 0 0 0 0 0 0 0 0 0]
[ 1 8 0 1423 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 1441 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 1430 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 1439 0 0 0 3 0 0 1]
[ 0 0 0 0 0 0 0 1453 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 1432 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 1445 0 0 0 0]
[ 0 2 0 0 0 0 0 0 0 0 1398 0 0 1]
[ 0 0 0 0 0 0 0 0 0 0 0 1411 0 0]
[ 0 5 0 1 0 0 0 0 0 0 0 0 1413 6]
[ 1 154 9 22 12 6 22 6 3 8 17 20 45 1154]]
测试数据的精度:0.9632235528942116
召回测试数据:0.9632235528942116
**我看到的问题是当我对火车数据进行预测时:我期望 100% 的预测。但不知何故,我的主导类并不是 100% 预测的。任何原因?
ACC: 0.9982**
Accuracy score on Train data: 80016
[[5751 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ **0 5699 2 2 1 0 1 3 3 2 0 2 2 32**]
[ 0 0 5723 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 5725 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 5716 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 5727 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 5714 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 5704 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 5725 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 5712 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 5756 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 5746 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 1 5731 0]
[ **0 4 5 5 5 2 9 8 2 16 6 19 10 5587**]]
训练数据的精度:0.9982284987150378 训练数据的召回率:0.9982284987150378
知道出了什么问题吗?