tôi muốn để tính toán precision
, recall
và f-score
sử dụng libsvm bằng Python nhưng tôi không biết làm thế nào. Tôi đã tìm thấy this site nhưng tôi không hiểu cách gọi hàm, nếu bạn có thể giúp tôi qua ví dụ.Làm thế nào để tính toán chính xác, thu hồi và F-score với libSVM trong python
5
A
Trả lời
10
Bạn có thể tận dụng lợi thế của scikit-learn
, một trong những gói tốt nhất để học máy bằng Python. thực hiện SVM của nó sử dụng libsvm
và bạn có thể làm việc ra chính xác, thu hồi và e-score như trong đoạn mã sau:
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)
Mà sẽ sản xuất một sản lượng tương tự như sau:
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]]
Tất nhiên, bạn có thể sử dụng các libsvm tools
bạn đã đề cập, tuy nhiên chúng được thiết kế để làm việc chỉ với phân loại nhị phân trong khi scikit
cho phép bạn làm việc với nhiều lớp.
Các vấn đề liên quan
- 1. libsvm Thu hẹp Heuristics
- 2. Tính toán hồi quy logistic trong python
- 3. scipy/NumPy/scikits - tính điểm chính xác/thu hồi dựa trên hai mảng
- 4. Làm thế nào để sử dụng libsvm trong Matlab?
- 5. C# độ chính xác cao tính toán
- 6. Làm cách nào để tính toán độ phức tạp chính xác của thuật toán?
- 7. Làm thế nào để sử dụng và xác minh độ chính xác quad trong gfortran?
- 8. Làm thế nào để mở rộng chính xác Devise Recoverable?
- 9. Tính toán của Cython là không chính xác
- 10. Làm thế nào để tính toán kích thước hình ảnh chính xác trong pdf bằng cách sử dụng itextsharp?
- 11. Làm cách nào để kiểm tra tính chính xác của thuật toán phân đoạn?
- 12. Python nhập chính xác như thế nào?
- 13. Thuộc tính danh nghĩa trong LibSVM
- 14. Tính toán chính xác kép của iPhone/iPad
- 15. Làm thế nào để tính toán DataGridView.Rows.Height?
- 16. libsvm - Độ chính xác xác thực chéo giống như tỷ lệ nhãn
- 17. Đào tạo lại sau khi xác nhận chéo với libsvm
- 18. Làm thế nào để tính toán chuỗi Fourier trong Numpy?
- 19. Nếu float và double không chính xác, làm thế nào để các ngân hàng thực hiện các phép tính chính xác liên quan đến tiền?
- 20. Làm thế nào để thực hiện tính toán trong tiền xử lý với stringification trong C
- 21. Tính toán độ dốc với python
- 22. Làm thế nào để tính toán di chuyển trung bình trong Python 3?
- 23. chức năng tính toán một số băm, chính xác nó làm gì và tại sao?
- 24. Làm cách nào để tôi tính chính xác 30 ngày trong quá khứ với Python (xuống đến phút)?
- 25. Làm thế nào để thác chính xác thông qua nhiều câu lệnh regex trong Python
- 26. Làm thế nào để tính toán một mod b trong python?
- 27. Làm thế nào để tính toán thứ sáu tới trong Python?
- 28. Tính e (cơ sở của nhật ký tự nhiên) với độ chính xác cao trong Python?
- 29. Độ chính xác trong python
- 30. làm thế nào để tính toán mức trung bình với MongoDB và NumberLong
Bạn đang tải bộ dữ liệu nào? Ví dụ: nếu tập dữ liệu của tôi nằm trong tệp văn bản thì cách sử dụng chúng? –
Trong ví dụ này, tôi đã sử dụng tập dữ liệu được xác định trước có tên là iris đi kèm với 'scikit-learn'. Đối với một tập dữ liệu cụ thể, bạn sẽ cần chuyển đổi dữ liệu văn bản của mình thành các ma trận có khối u. – jabaldonedo