저는 최근 내 프로젝트에 sklearn을 사용하는 데 어려움을 겪고 있습니다. 나는 분류자를 만들고 내 데이터를 6 개의 그룹으로 분류하려고했습니다. 전체 표본 크기는 여기에 내 코드멀티 클래스에 대해 교차 유효성 검사를 위해 평균 ROC를 계산하는 방법
from sklearn.multiclass import OneVsRestClassifier
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA
clf = OneVsRestClassifier(QDA())
QDA_score = clf.fit(train,label).decision_function(test)
from sklearn.metrics import roc_curve, auc
from sklearn.metrics import roc_curve
fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(3):
fpr[i], tpr[i], _ = roc_curve(label_test[:, i], QDA_score[:, i])
roc_auc[i] = auc(fpr[i], tpr[i])
from itertools import cycle
import matplotlib.pyplot as plt
plt.figure()
lw = 2
colors = cycle(['aqua', 'darkorange', 'cornflowerblue'])
for i, color,n in zip(range(3), colors,['_000','_15_30_45','60']):
plt.plot(fpr[i], tpr[i], color=color, lw=lw,
label='ROC curve of {0} (area = {1:0.2f})'
''.format(n , roc_auc[i]))
plt.plot([0, 1], [0, 1], 'k--', lw=lw)
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 for multi-classes')
plt.legend(loc="lower right")
plt.show()
링크 내 결과입니다, 88 나는 기차 (66) 및 테스트 sklearn 문서는 켰을 때, 나는 정확히 한 (22) 로 데이터를 분할했다. 그러나 코드를 실행할 때마다 결과가 변경됩니다. 어쨌든 교차 검증과 결합하여 각 클래스의 평균 및 안정적인 ROC를 계산할 수 있는지 궁금합니다.
고마워요!
안녕하세요. 첫 번째 게시물을 검토하고 있습니다. 작업중인 문서에 대한 링크를 추가하는 것이 좋습니다. 또한 언급하고있는 결과와의 링크가 누락 된 것 같습니다. 행동을 바꾸는 코드 부분을 더 잘 분리하고 예상치 못한 이유를 설명 할 수 있다면 도움이 될 것입니다. 그렇지 않으면, 이것은 꽤 좋은 첫 번째 게시물입니다. 행운을 빕니다! – Praxeolitic