2012-02-01 17 views
6
  • tôi phù hợp với một Logistic Regression Model và đào tạo các mô hình dựa trên tập dữ liệu đào tạo bằng cách sử dụng sau đây
import scikits as sklearn 
from sklearn.linear_model import LogisticRegression 
lr = LogisticRegression(C=0.1, penalty='l1') 
model = lr.fit(training[:,0:-1], training[:,-1) 
  • Tôi có tập dữ liệu xác thực chéo chứa một nhãn được liên kết trong ma trận đầu vào và có thể được truy cập là

cv [:, - 1]scipy/NumPy/scikits - tính điểm chính xác/thu hồi dựa trên hai mảng

  • tôi chạy bộ dữ liệu kiểm chứng chéo của tôi so với mô hình đào tạo mà trả về cho tôi danh sách các 0s và 1s dựa trên dự đoán

cv_predict = model.predict (cv [:, 0: -1])

Câu hỏi

Tôi muốn tính điểm chính xác và số lần truy lại dựa trên nhãn thô và nhãn được dự đoán. Có một phương pháp tiêu chuẩn để làm điều đó bằng cách sử dụng numpy/scipy/scikits?

Cảm ơn bạn

Trả lời

21

Có có được, xem tài liệu: http://scikit-learn.org/stable/modules/classes.html#classification-metrics

Bạn cũng nên có một cái nhìn tại sklearn.metrics.classification_report tiện ích:

>>> from sklearn.metrics import classification_report 
>>> from sklearn.linear_model import SGDClassifier 
>>> from sklearn.datasets import load_digits 

>>> digits = load_digits() 
>>> n_samples, n_features = digits.data.shape 
>>> n_split = n_samples/2 

>>> clf = SGDClassifier().fit(digits.data[:n_split], digits.target[:n_split]) 

>>> predictions = clf.predict(digits.data[n_split:]) 
>>> expected = digits.target[n_split:] 

>>> print classification_report(expected, predictions) 
      precision recall f1-score support 

      0  0.90  0.98  0.93  88 
      1  0.81  0.69  0.75  91 
      2  0.94  0.98  0.96  86 
      3  0.94  0.85  0.89  91 
      4  0.90  0.93  0.91  92 
      5  0.92  0.92  0.92  91 
      6  0.92  0.97  0.94  91 
      7  1.00  0.85  0.92  89 
      8  0.71  0.89  0.79  88 
      9  0.89  0.83  0.86  92 

avg/total  0.89  0.89  0.89  899 
+0

này là tuyệt vời, cảm ơn bạn @ogrisel – daydreamer

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