У меня есть набор данных с несколькими дискретными метками, скажем, 4,5,6. На этом я запускаю ExtraTreesClassifier (я также буду запускать многоязычный логит послесловия на одни и те же данные, это всего лишь короткий пример), как показано ниже. :Вычисление нескольких кривых ROC или среднее значение из мультиклассических меток (многокомпонентная регрессия)
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)
Я предполагаю, я получу что-то подобное этому послесловия - но как я интерпретирую пороги в этом случае? How to plot a ROC curve for a knn model
Поэтому, пожалуйста, также упомянуть, если я могу/должен получить индивидуальные пороги в этом случае, и почему один подход лучше (статистически) по сравнению с другими?
То, что я пытался до сих пор (опять же в среднем):
Об изменении pos_label = 4, то 5 & 6 и построения кривых ROC, я вижу, очень низкая производительность, даже меньшую, чем у = х (совершенно случайный и tpr = fpr case) Как мне подойти к этой проблеме?
Найдено это документ, который описывает несколько usecases решить подобную проблему https://ccrma.stanford.edu/workshops/mir2009/references/ROCintro.pdf «Введение в графах РПЦ: Том Фосетт» – ekta
Другая возможность поиска сетки для вычисления пороговых значений, которые дают максимальный tpr и наименьший fpr. Подробнее здесь, http://stackoverflow.com/questions/13370570/elegant-grid-search-in-python-numpy и http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.brute .html # scipy.optimize.brute – ekta