Chcę obliczyć precision
, recall
i f-score
użyciu libsvm w Pythonie, ale nie wiem jak. Znalazłem this site, ale nie rozumiem, jak wywołać tę funkcję, jeśli możesz mi pomóc poprzez przykład.Jak obliczyć precyzję, przywołanie i F-wynik z libSVM w Pythonie
5
A
Odpowiedz
10
Możesz skorzystać z scikit-learn
, który jest jednym z najlepszych pakietów do uczenia maszynowego w Pythonie. Jego realizacja SVM wykorzystuje libsvm
i można wypracować precyzję, przywołanie i F-wynik, jak pokazano w poniższym przykładzie:
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)
która będzie produkować moc podobną do tej:
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]]
oczywiście możesz użyć wspomnianego libsvm tools
, ale są one zaprojektowane do pracy tylko z klasyfikacją binarną, natomiast scikit
umożliwia pracę z multiclass.
Powiązane problemy
- 1. Dokładność, precyzja i przywołanie do multi-klasy modelu
- 2. Jak obliczyć średnią ruchomą w Pythonie 3?
- 3. Jak obliczyć skumulowaną normalną dystrybucję w Pythonie
- 4. Jak obliczyć następny piątek w Pythonie?
- 5. Jak skonfigurować LIBSVM dla Pythona
- 6. Czy libsvm jest dokładne?
- 7. Jak obliczyć łączną średnią ruchomą w Pythonie/SQLAlchemy/Flask
- 8. libsvm Kurczenie się heurystyki
- 9. Matlab libsvm - jak znaleźć współczynniki w
- 10. Jak mogę obliczyć sygnaturę interfejsu AWS (v4) w pythonie?
- 11. Przykład użycia LibSVM w java
- 12. jak obliczyć średnią z MongoDB i NumberLong
- 13. Jak korzystać z przykładu "svm_toy" Applet w LibSVM?
- 14. Jak obliczyć sumę kontrolną md5 pliku w Pythonie?
- 15. Jak ustawić precyzję zmiennoprzecinkową w Perlu?
- 16. Jak korzystać z biblioteki libsvm w programie Matlab?
- 17. Jak obliczyć odwrotność normalnej funkcji rozkładu skumulowanego w pythonie?
- 18. Nie można dokładnie obliczyć pi na Pythonie
- 19. Dokładność LibSVM maleje
- 20. JavaScript pomnożyć nie precyzję
- 21. Przywołanie w menu zniknie, gdy użyjesz suwaka tła z pozycją: stała i z-index
- 22. LibSVM: opcja -wi (wybór wagi) podczas sprawdzania krzyżowego i testowania
- 23. W jaki sposób 32-bitowa maszyna oblicza podwójną precyzję numer
- 24. Ustaw wszystkie operacje BigDecimal na określoną precyzję?
- 25. libsvm do wykreślania krzywych ROC
- 26. Usunąć precyzję TIMESTAMP z NOW() spowodować PostgreSQL?
- 27. Jak obliczyć przypisania klastra z macierzy powiązań/odległości w scipie w Pythonie?
- 28. Konwertuj bajt na podwójną precyzję w PostgreSQL
- 29. Jak obliczyć kąt z punktów?
- 30. Zły wynik przy użyciu prekomputowanego jądra chi2 z libsvm (matlab)
Jakich zestawów danych ładujesz? Na przykład, jeśli mój zestaw danych znajduje się w pliku tekstowym, jak z nich korzystać? –
W przykładzie użyłem predefiniowanego zestawu danych o nazwie iris, który jest dostarczany z 'scikit-learn'. W przypadku konkretnego zestawu danych konieczne będzie przekonwertowanie danych tekstowych na numpy. – jabaldonedo