- 按预测值和标签升序排序
- 遍历数组,遇到负样本neg+1,遇到正样本sum+=neg
- 考虑到存在正负样本预测值相同,需要加0.5的情况,增加辅助变量tmp和val
- 理论看这里
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct val_np {
double val;
char np;
};
bool auc_cmp(val_np a, val_np b) {
if(a.val == b.val) return a.np < b.np;
return a.val < b.val;
}
double AUC(vector<val_np> v) {
sort(v.begin(),