Ich mag die precision
, recall
und f-score
mit LIBSVM in Python berechnen, aber ich weiß nicht, wie. Ich habe this site gefunden, aber ich habe nicht verstanden, wie man die Funktion aufruft, wenn Sie mir durch Beispiel helfen können.Wie Präzision, Rückruf und F-Score mit libSVM in Python berechnen
5
A
Antwort
10
Sie können scikit-learn
nutzen, eines der besten Pakete für maschinelles Lernen in Python. Seine SVM-Implementierung verwendet libsvm
und Sie können im folgenden Ausschnitt wie gezeigt Präzision, Rückruf und f-score ausrechnen:
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)
, die einen Ausgang ähnlich wie diese produzieren:
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]]
Natürlich Sie können die libsvm tools
verwenden, die Sie erwähnt haben, aber sie sind so konzipiert, dass sie nur mit binärer Klassifizierung arbeiten, während scikit
Ihnen erlaubt, mit Multiclass zu arbeiten.
Welchen Datensatz laden Sie? Zum Beispiel, wenn mein Datensatz in der Textdatei ist, wie man sie benutzt? –
Im Beispiel habe ich einen vordefinierten Datensatz namens Iris verwendet, der mit "scikit-learn" geliefert wird. Für ein bestimmtes Datenset müssen Sie Ihre Textdaten in nuepy Matrizen konvertieren. – jabaldonedo