gpt4 book ai didi

python - 为什么我的分类器无法学习正类?

转载 作者:行者123 更新时间:2023-11-30 09:16:07 25 4
gpt4 key购买 nike

我当前正在执行分类,但我的分类器无法预测测试集上的正类。

正负分布为10:90。我使用分层抽样进行了 5 倍交叉验证,结果似乎在所有折叠中都是连续的,而在测试中它预测所有类别均为阳性。

from xgboost.sklearn import XGBClassifier

scores =[]
clf1 = XGBClassifier()
clf1.fit(X,y)
scores = cross_val_score(clf1, X, y, cv=skf.split(X, y), scoring='roc_auc')
print(scores.mean())
scores

相同的输出是

0.6286471235534742
array([0.62958638, 0.63038406, 0.6277138 , 0.63027538, 0.62527601])

我已将分类数据视为热编码。测试类(class)分布为14:86。它将所有类别预测为负面。

我的训练数据集大小是 75002,44。

最佳答案

使用roc_auc作为评分/评估函数的目的不是用阈值0.5来预测负类和正类,而是预测为正类的概率等级。预测值的平均概率通常等于正类数量占总数的比例,因此在正类比例较小且 roc_auc 较小(0.6x 相当小)的情况下,所有预测值可能会围绕平均概率分组(~0.10-0.15)表明不存在正类。如果您需要 roc_auc 不提供的功能,您应该更改评估函数。

关于python - 为什么我的分类器无法学习正类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55803169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com