Scipy / Numpy / scikits - вычисление оценок точности / отзыва на основе двух массивов - PullRequest
6 голосов
/ 01 февраля 2012
  • Я подгоняю модель логистической регрессии и обучаю модель на основе набора данных для обучения, используя следующий
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)
  • У меня есть набор данных перекрестной проверкикоторый содержит метки, связанные с входной матрицей, и может быть доступен как

cv [:, - 1]

  • Я запускаю свой набор данных перекрестной проверкипротив обученной модели, которая возвращает мне список 0 и 1 на основе прогноза

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

Вопрос

Я хочу рассчитать оценки точности и отзыва на основе точных меток и прогнозируемых меток.Есть ли стандартный способ сделать это, используя numpy / scipy / scikits?

Спасибо

1 Ответ

22 голосов
/ 01 февраля 2012

Да, смотрите документацию: http://scikit -learn.org / stable / modules / classes.html #ification-metrics

Вы также должны взглянуть на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
...