piton

2013-06-04 22 views
5

yılında LIBSVM ile hassasiyet, hatırlama ve F-puanı hesaplamak için nasıl precision, recall ve f-score Python LIBSVM kullanarak ama nasıl bilmiyorum hesaplamak istiyorum. this site'u buldum ama örnek olarak bana yardımcı olabilirseniz, işlevi nasıl arayacağımı anlamıyorum.piton

cevap

10

Python'da makine öğrenimi için en iyi paketlerden biri olan scikit-learn'dan yararlanabilirsiniz. Onun SVM uygulaması libsvm kullanır ve aşağıdaki kod parçasında gösterildiği gibi hassas, hatırlama ve f-skor çalışabilir: Buna benzer bir çıktı üretecektir

from sklearn import svm 
from sklearn import metrics 
from sklearn.cross_validation import train_test_split 
from sklearn.datasets import load_iris 

# prepare dataset 
iris = load_iris() 
X = iris.data[:, :2] 
y = iris.target 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 

# svm classification 
clf = svm.SVC(kernel='rbf', gamma=0.7, C = 1.0).fit(X_train, y_train) 
y_predicted = clf.predict(X_test) 

# performance 
print "Classification report for %s" % clf 
print 
print metrics.classification_report(y_test, y_predicted) 
print 
print "Confusion matrix" 
print metrics.confusion_matrix(y_test, y_predicted) 

: Elbette

Classification report for SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.7, 
kernel=rbf, max_iter=-1, probability=False, shrinking=True, tol=0.001, 
verbose=False) 

      precision recall f1-score support 

      0  1.00  1.00  1.00   9 
      1  0.90  0.69  0.78  13 
      2  0.64  0.88  0.74   8 

avg/total  0.86  0.83  0.84  30 


Confusion matrix 
[[9 0 0] 
[0 9 4] 
[0 1 7]] 

, Bahsettiğiniz libsvm tools'u kullanabilirsiniz, ancak bunlar sadece ikili sınıflandırma ile çalışmak üzere tasarlanmıştır, oysa scikit multiclass ile çalışmanıza izin verir.

+0

Hangi veri kümesini yüklüyorsunuz? Örneğin, veri kümem metin dosyasında ise nasıl kullanılır? –

+0

Örnekte, "scikit-learn" ile gelen iris adı verilen önceden tanımlanmış bir veri kümesi kullandım. Belirli bir veri kümesi için metin verilerinizi numpy matrislerine dönüştürmeniz gerekir. – jabaldonedo