ile çapraz doğrulama I hatırlama, hassas ve farklı sınıflandırıcıların bir çapraz geçerlilik testinin F-ölçü hesaplamak istiyoruz. scikit-öğrenmecross_val_score ama ne yazık ki böyle bir yöntem dönmez birden çok değer ile birlikte gelir.sklearn - Birden çok puanları
Ben üç kez cross_val_score arayarak böyle önlemleri hesaplamak olabilir ama bu verimli değildir. Daha iyi bir çözüm var mı? Temelde karışıklık matris değerleri özetliyor ve sahip kez yanlış pozitif, yanlış negatif kolayca hatırlama hesaplayabilir vs, hassas vs.
from sklearn import metrics
def mean_scores(X, y, clf, skf):
cm = np.zeros(len(np.unique(y)) ** 2)
for i, (train, test) in enumerate(skf):
clf.fit(X[train], y[train])
y_pred = clf.predict(X[test])
cm += metrics.confusion_matrix(y[test], y_pred).flatten()
return compute_measures(*cm/skf.n_folds)
def compute_measures(tp, fp, fn, tn):
"""Computes effectiveness measures given a confusion matrix."""
specificity = tn/(tn + fp)
sensitivity = tp/(tp + fn)
fmeasure = 2 * (specificity * sensitivity)/(specificity + sensitivity)
return sensitivity, specificity, fmeasure
: Artık
Ben bu fonksiyonu yazdım .. Ama yine de bu çözüm sevmiyorum :)
'classification_report' kullanımıyla ilgili sorun nedir? Bkz. Http://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html#sklearn.metrics.classification_report – EdChum
Temel olarak "cross_val_score" un özünü aldınız ve bunu davanıza uyarladınız. Bu mükemmel bir seçenek gibi görünüyor, nasıl daha iyi yapılacağını görmüyorum. Sklearn kodunu değiştirmeyi düşünüyorsanız, lütfen sorunun açıklamasını ve bir geçici çözümü yanıtıma bakın. – eickenberg
@EdChum bu çapraz doğrulama yapmaz. Modelin performansını tek bir ön eğitim aşamasına göre ölçersiniz. – Dror