我有一个测试数据集,其中 1/3 的观察结果是 1 类对象,其余是 0 类对象。因此,数据集是偏斜的(偏斜分类器),文献表明如果数据集偏斜,则使用精确召回曲线(AUC)而不是 ROC-AUC。
例如,运行以下代码会导致 AUC_Pr_rand = 0.3267 和 AUC_Pr_Ones = 0.3346。其中第一个是随机分类器,第二个是仅输出的非学习算法。
n=10000;
Y = rand(n,1) > 2/3;
Yi = rand(n,1);
[~,~,~,AUC_Pr_rand] = perfcurve(Y,Yi,true, 'xCrit', 'reca', 'yCrit', 'prec');
[~,~,~,AUC_Pr_Ones] = perfcurve(Y,1+rand(size(Yi))*0.00001,true, 'xCrit', 'reca', 'yCrit', 'prec');
仅输出 0 类的非学习算法,对于上述测试集(1/3 是第一类),准确度约为 66%,但上述随机分类器的准确度约为 50%(我不确定是否这意味着什么,但我测试了一个逻辑回归模型,它给出的准确度约为 65%,所以我不认为准确度是用于性能测试的指标)。
因此,现在对于在这个倾斜数据集上测试的任何其他给定分类器(例如逻辑回归或 CART),目标是击败这个随机分类器,即获得高于 0.3246 或 0.5 的 PR-AUC(因为这是随机分类器应该输出为平衡数据集的 PR-AUC)?