2012-02-01 17 views
6
  • ja dopasować Logistic Model regresji i trenować model oparty na szkolenia zestawu danych przy użyciu następujących
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) 
  • Mam zestaw danych sprawdzania poprawności krzyżowej, który zawiera etykiety powiązane z matrycą wejściową i można uzyskać do niego dostęp pod numerem

cv [:, - 1]scipy/NumPy/scikits - obliczanie punktacji precyzja/przywracania oparte na dwóch tablicach

  • uruchomić mój zestaw danych walidacji krzyż przeciwko wyszkolony modelu, który zwraca mi listę 0 i 1 na podstawie przewidywania

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

Pytanie

Chcę obliczyć wyniki precyzji i przypomnień na podstawie etykiet acutalnych i przewidywanych etykiet. Czy istnieje standardowa metoda wykonania tego przy użyciu numpy/scipy/scikits?

Dziękuję

Odpowiedz

21

Tak tam są, można znaleźć w dokumentacji: http://scikit-learn.org/stable/modules/classes.html#classification-metrics

Należy również spojrzeć na narzędzia sklearn.metrics.classification_report:

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

to jest niesamowite, dziękuję @ogrisel – daydreamer