Çok sınıflı bir sınıflandırma sorunu için bir NB sınıflandırıcı kullanan aşağıdaki kod parçasına sahibim. Fonksiyon, doğrulukları depolayarak ve daha sonra ortalamayı yazarak çapraz doğrulamayı hazırlar. Bunun yerine istediğim, sonuçta ortalama bir doğruluk puanı yerine, bilge kesinliği ve hatırlamayı belirten bir sınıflandırma raporudur.10 kat çapraz doğrulamayı kullanarak sınıfsal hassasiyeti ve çoklu çağlı Naive Bayes için geri çağırma bildiren bir sınıflandırma raporu alın
from sklearn.metrics import classification_report
from sklearn.naive_bayes import MultinomialNB
def multinomial_nb(x_train, y_train, x_test, y_test):
clf = MultinomialNB().fit(x_train, y_train)
y_pred = clf.predict(x_test)
y_true = y_test
print classification_report(y_true, y_pred)
Ve bana böyle bir rapor verir: Ben çapraz doğrulama gerçekleştirmek yoksa
import random
from sklearn import cross_validation
from sklearn.naive_bayes import MultinomialNB
def multinomial_nb_with_cv(x_train, y_train):
random.shuffle(X)
kf = cross_validation.KFold(len(X), n_folds=10)
acc = []
for train_index, test_index in kf:
y_true = y_train[test_index]
clf = MultinomialNB().fit(x_train[train_index],
y_train[train_index])
y_pred = clf.predict(x_train[test_index])
acc.append(accuracy_score(y_true, y_pred))
yapmam gereken tek şey
precision recall f1-score support
0 0.50 0.24 0.33 221
1 0.00 0.00 0.00 18
2 0.00 0.00 0.00 27
3 0.00 0.00 0.00 28
4 0.00 0.00 0.00 32
5 0.04 0.02 0.02 57
6 0.00 0.00 0.00 26
7 0.00 0.00 0.00 25
8 0.00 0.00 0.00 43
9 0.00 0.00 0.00 99
10 0.63 0.98 0.76 716
avg/total 0.44 0.59 0.48 1292
Ben benzer bir alabilirim nasıl çapraz doğrulama durumunda bile rapor?
Bu harika. Yani cross_val_predict, dahili olarak sadece her katlama ve çıktı için y_true ve y_pred ile bitiştirir. Daha sonra beni vurdu, tek yapabildiğim önceki kodumda aynı. – CuriousCat
@CuriousCat Evet, ilk önce tüm örneği 10 katına böleriz. Ve sonra her bir kat kullanarak bir test örneği olarak çapraz validasyon yaparız ve ilgili tahminler saklanır. Son olarak, "cross_val_pred", bu örtüşme dışı tahminleri yerine getirir ve tam eğitim örneklemimizin aynı uzunluğunun sonucunu döndürür. –