我已经将测试集解决方案文件https://www.kddcup2012.org/c/kddcup2012-track2/download/KDD_Track2_solution.csv用于 kdd cup 2012 track 2,之后我只是作弊(实际上只是一个测试)使 predict_ctr 为每个测试集实例的解决方案文件中#clicks / #impressions 的比率,但 AUC 仍然很低:
我很困惑,这合理吗?甚至看起来像作弊,但我认为人为的 ctr 应该很好地匹配解决方案文件,如果人为的 ctr 是一个很好的预测,那么 AUC 度量可能不能代表这个问题中学习算法的预测质量。
AUC : 0.478290
NWMAE: 0.000000
WRMSE: 0.000000
对应的python代码片段是这样的:
num_clicks, num_impressions = read_solution_file(sys.argv[1])
predicted_ctr = [num_clicks[i]/num_impressions[i] for i in range(len(num_clicks))]
auc = scoreClickAUC(num_clicks, num_impressions, predicted_ctr)
print("AUC : %f" % auc)
nwmae = scoreNWMAE(num_clicks, num_impressions, predicted_ctr)
print("NWMAE: %f" % nwmae)
wrmse = scoreWRMSE(num_clicks, num_impressions, predicted_ctr)
print("WRMSE: %f" % wrmse)
经过一番搜索,我知道了 auc 是如何计算的,以及一些像这样的问题http://www.kddcup2012.org/c/kddcup2012-track2/forums/t/1545/calculate-auc
提前感谢您的帮助。