У меня есть набор данных с несколькими дискретными метками, скажем, 4,5,6. На этом я запускаю ExtraTreesClassifier (я также буду запускать послесловие Multinomial logit для тех же данных, это всего лишь короткий пример), как показано ниже. :
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.metrics import roc_curve, auc
clf = ExtraTreesClassifier(n_estimators=200,random_state=0,criterion='gini',bootstrap=True,oob_score=1,compute_importances=True)
# Also tried entropy for the information gain
clf.fit(x_train, y_train)
#y_test is test data and y_predict is trained using ExtraTreesClassifier
y_predicted=clf.predict(x_test)
fpr, tpr, thresholds = roc_curve(y_test, y_predicted,pos_label=4) # recall my labels are 4,5 and 6
roc_auc = auc(fpr, tpr)
print("Area under the ROC curve : %f" % roc_auc)
Вопрос в том, есть ли что-то вроде средней кривой ROC - в основном я мог бы сложить все tpr и fpr отдельно для КАЖДОГО значения метки, а затем взять средства (кстати, будет ли это иметь смысл?) - а потом просто позвони
# Would this be statistically correct, and would mean something worth interpreting?
roc_auc_avearge = auc(fpr_average, tpr_average)
print("Area under the ROC curve : %f" % roc_auc)
Я предполагаю, что получу что-то похожее на это послесловие, но как мне интерпретировать пороговые значения в этом случае? Как построить кривую ROC для knn модель
Поэтому, пожалуйста, также укажите, могу ли я получить индивидуальные пороговые значения в этом случае и почему один подход лучше (статистически) над другим?
Что я пробовал до сих пор (кроме усреднения):
При изменении pos_label = 4, затем 5 и 6 и построении кривых roc я вижу очень низкую производительность, даже меньшую, чем y = x (совершенно случайный и случай tpr = fpr). Как мне подойти к этой проблеме?