2013-06-04 59 views

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.

+0

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? –

+0

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

Các vấn đề liên quan