У меня есть задача анализа настроения, для этого Im, используя этот corpus мнения есть 5 классов (very neg
, neg
, neu
, pos
, very pos
), от 1 до 5. Так что я классификацию следующим образом:Как интерпретировать матрицу смешения Scikit и классификационный отчет?
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]]
Как я могу интерпретировать вышеуказанную матрицу смешения и классификационный отчет. Я пробовал читать documentation и этот question. Но все же можно интерпретировать то, что здесь произошло, особенно с этими данными ?. Wny эта матрица как-то «диагональна» ?. С другой стороны, что означает отзыв, точность, f1score и поддержка этих данных ?. Что я могу сказать об этих данных ?. Спасибо заранее, ребята
Итак, когда я суммирую значения матрицы, я получаю 857, так как я разбил данные следующим образом: 'X_train, X_test, y_train, y_test = cross_validation.train_test_split (X, y, test_size = 0.33)' (33 % для обучения и 2599 мнений, у меня есть 33% из 2599 - 857). Здесь 2599 экземпляров отражены в матрице путаницы ?. Однако, как вы видите, для этой задачи я не «балансировал» данные. Когда я сбалансировал результаты данных, где намного лучше, почему вы думаете, что это произошло? –
Что вы имели в виду с точками (векторы мнения) ?. Благодаря! –
Yup. Каждый элемент данных - который представлен как вектор функции. – Aditya