Как интерпретировать scikit изучать матрицу путаницы и классификационный отчет?
У меня есть задача анализа настроений, для этого Im, используя этот корпус, мнения имеют 5 классов (very neg
, neg
, neu
, pos
, very pos
), от 1 до 5. Поэтому я делаю классификацию следующим образом:
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
tfidf_vect= TfidfVectorizer(use_idf=True, smooth_idf=True,
sublinear_tf=False, ngram_range=(2,2))
from sklearn.cross_validation import train_test_split, cross_val_score
import pandas as pd
df = pd.read_csv('/corpus.csv',
header=0, sep=',', names=['id', 'content', 'label'])
X = tfidf_vect.fit_transform(df['content'].values)
y = df['label'].values
from sklearn import cross_validation
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X,
y, test_size=0.33)
from sklearn.svm import SVC
svm_1 = SVC(kernel='linear')
svm_1.fit(X, y)
svm_1_prediction = svm_1.predict(X_test)
Затем с метриками я получил следующую матрицу смешения и отчет о классификации следующим образом:
print '\nClasification report:\n', classification_report(y_test, svm_1_prediction)
print '\nConfussion matrix:\n',confusion_matrix(y_test, svm_1_prediction)
Тогда это результат:
Clasification report:
precision recall f1-score support
1 1.00 0.76 0.86 71
2 1.00 0.84 0.91 43
3 1.00 0.74 0.85 89
4 0.98 0.95 0.96 288
5 0.87 1.00 0.93 367
avg / total 0.94 0.93 0.93 858
Confussion matrix:
[[ 54 0 0 0 17]
[ 0 36 0 1 6]
[ 0 0 66 5 18]
[ 0 0 0 273 15]
[ 0 0 0 0 367]]
Как я могу интерпретировать приведенную выше таблицу путаницы и классификационный отчет. Я пробовал читать документацию и question. Но все же можно интерпретировать то, что здесь произошло, особенно с этими данными?. Wny эта матрица как-то "диагональна"?. С другой стороны, что означает отзыв, точность, f1score и поддержка этих данных?. Что я могу сказать об этих данных?. Спасибо заранее, ребята
Ответы
Ответ 1
Отчет о классификации должен быть простым - отчет P/R/F-Measure для каждого элемента в тестовых данных. В задачах многоклассификации не рекомендуется читать Precision/Recall и F-Measure по всем данным, любой дисбаланс заставит вас почувствовать, что вы достигли лучших результатов. То, где такие отчеты помогают.
Приходя к матрице замешательства, это очень подробное представление о том, что происходит с вашими ярлыками. Таким образом, в первом классе было 71 очко (метка 0). Из них ваша модель успешно идентифицировала 54 из них правильно в метке 0, но 17 были отмечены как метка 4. Аналогично посмотрите на вторую строку. В классе 1 было 43 балла, но 36 из них были отмечены правильно. Ваш классификатор предсказал 1 в классах 3 и 6 в классе 4.
![enter image description here]()
Теперь вы можете увидеть, как это выглядит. Идеальные классификаторы со 100-процентной точностью создавали бы чистую диагональную матрицу, которая имела бы все точки, предсказанные в их правильном классе.
Возвращение/Точность. Это некоторые из наиболее часто используемых мер при оценке эффективности вашей системы. Теперь у вас было 71 очко в первом классе (назовите его 0 классом). Из них ваш классификатор смог получить 54 элемента правильно. Это ваш отзыв. 54/71 = 0,76. Теперь посмотрим только на первый столбец в таблице. Есть одна ячейка со входом 54, остальные - нули. Это означает, что ваш классификатор маркировал 54 точки в классе 0, и все 54 из них были фактически в классе 0. Это точность. 54/54 = 1. Посмотрите на столбец с пометкой 4. В этом столбце есть элементы, разбросанные по всем пяти строкам. 367 из них были отмечены правильно. Остальные все неверны. Это уменьшает вашу точность.
F Измерение представляет собой гармоническое среднее точности и повторения.
Обязательно прочитайте подробности об этом. https://en.wikipedia.org/wiki/Precision_and_recall
Ответ 2
Здесь документация для scikit-learn sklearn.metrics.precision_recall_fscore_support метода: http://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html#sklearn.metrics.precision_recall_fscore_support
Кажется, что поддержка - это количество вхождений каждого конкретного класса в истинные ответы (ответы в вашем тестовом наборе). Вы можете рассчитать его, суммируя строки матрицы замешательства.
Ответ 3
Confusion Matrix рассказывает нам о распределении наших прогнозируемых значений по всем фактическим результатам. Accuracy_scores, Recall (чувствительность), точность, специфика и другие подобные показатели являются подмножествами матрицы Confusion.
Показатели F1 - это гармонические средства точности и запоминания.
Столбцы поддержки в Classification_report рассказывают нам о фактических подсчетах каждого класса в тестовых данных.
Хорошо, отдых объясняется выше красиво.
Спасибо.