- 按预测值和标签升序排序
- 遍历数组,遇到负样本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()

该代码实现了一个按预测值和标签升序排序的数组,用于计算AUC(AreaUndertheCurve)。在遍历过程中处理了正负样本,考虑了预测值相同的情况,特别地,当遇到正样本时,会更新累计和sum。最后返回AUC值。
最低0.47元/天 解锁文章
1395

被折叠的 条评论
为什么被折叠?



