У меня есть проблема с классификацией, которую я реализовал с помощью алгоритма Gradin Boosting для очень несбалансированных данных. Поскольку данные несбалансированы, мы запускаем приведенный ниже код для расчета значения AUC для оценки эффективности классификации.
mymodel= GradientBoostingClassifier.fit(X_train, y_train)
y_test=my_validation['target']
X_test=my_validation.drop(['target'],axis=1)
y_true=np.array(y_test).copy()
y_true=y_true.astype(int)
y_score=mymodel.predict_proba(X_test)[:,1]
# Compute ROC curve and ROC area for each class
fpr = dict()
tpr = dict()
roc_auc = dict()
fpr, tpr, thresholds = roc_curve(y_true, y_score)
roc_auc = auc(fpr, tpr)
plt.figure()
lw = 2
plt.plot(fpr, tpr, color='red',lw=lw,label=r'%1s (AUC%0.2f)'
% (m_classifier_name,roc_auc) )
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='-')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC_AUC Value: %1s'%myLabel)
plt.legend(loc="lower right")
plt.show()
Этот код дает мне значение auc 62%, что как-то хорошо, так как у нас есть очень несбалансированные данные в наборе обучения и проверки. Итак, мой вопрос: возможно ли извлечь индекс из тех выборок, которые в этом коде предсказаны как TP и PF?