auc的解釋:
https://blog.csdn.net/u013385925/article/details/80385873
Gini和AUC的關系(Gini=2AUC-1真的成立嗎?):
https://blog.csdn.net/dongweionly/article/details/83573878
gini原版測試代碼(較長):
https://blog.csdn.net/u010665216/article/details/78528261
sklearn 和 多分類上的auc例子:
注意,auc是計算曲線下的面積,曲線自己來定義。roc_auc_score 是專門計算roc曲線的面積。
https://www.pianshen.com/article/517880764/
import numpy as np def gini(actual, pred): assert (len(actual) == len(pred)) all = np.asarray(np.c_[actual, pred, np.arange(len(actual))], dtype=np.float) all = all[np.lexsort((all[:, 2], -1 * all[:, 1]))] totalLosses = all[:, 0].sum() giniSum = all[:, 0].cumsum().sum() / totalLosses giniSum -= (len(actual) + 1) / 2. return giniSum / len(actual) def gini_norm(actual, pred): return gini(actual, pred) / gini(actual, actual) predictions = [0.9, 0.3, 0.8, 0.75, 0.65, 0.6, 0.78, 0.7, 0.05, 0.4, 0.4, 0.05, 0.5, 0.1, 0.1] actual = [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] k = gini_norm(actual, predictions) k