精确召回曲线vs ROC曲线:我是否应该通过SMOTE在已经平衡的信息上应用PR曲线?

2024-09-25 02:37:29 发布

您现在位置:Python中文网/ 问答频道 /正文

针对不平衡二元分类问题,在随机森林中建立了3种不同的分类模型(0-369,1-1750)

第一种是随机森林(基线),它在trainX和trainY上使用rf1拟合

第二个是随机林(平衡),它使用rf2配置类\权重='平衡'适合trainX和trainY

第三种是随机森林(SMOTE),它在trainX\u SMOTE和trainY\u SMOTE上使用rf1拟合

我知道在正常情况下,PR曲线下的面积应该用于不平衡数据集。但是,我不太确定是否需要在第二和第三种情况下再次使用PR曲线或ROC曲线下的面积

即使我使用参数或SMOTE过程排序“平衡”数据集,我是否仍应在第二和第三种情况下应用PR曲线下的面积?我知道ROC-AUC和PR-AUC是不可比的,但我的理解是你用PR-AUC来处理不平衡的数据,所以我很为难

我的目标是证明过采样SMOTE或在class\u weight='balanced'中配置参数是否会提高预测能力

请让我知道哪一个我应该使用已经平衡的数据集,为什么。谢谢

trainX, testX, trainY, testY = train_test_split(x,y,test_size=0.20, random_state=2019)

# First 2 models

# baseline model using imbalanced data
rf1 = RandomForestClassifier(n_estimators=2500, max_depth=4)

# balanced model using class_weight = 'balanced'
rf2 = RandomForestClassifier(n_estimators=2500, class_weight = 'balanced', max_depth=4)

# SMOTE
smote = SMOTE(random_state=42)
trainX_smote, trainY_smote = smote.fit_sample(trainX, trainY)

trainX_smote = pd.DataFrame(data = trainX_smote, columns=trainX.columns)

# 3rd model will use rf1 on SMOTEd trainX and trainY and then .fit and will test on original testX.

Tags: 数据trainy森林情况pr曲线classweight