#python #scikit-learn #fasttext
#python #scikit-learn #fasttext
Вопрос:
Я использую FastText и для оценки результатов моей классификации (двоичная классификация), и я хотел бы распечатать оценку классификации. На самом деле в качестве вывода у меня есть точность и отзыв. Вот мой код:
train_file = 'train.csv'
test_file = 'test.csv'
print("training model...")
model = fasttext.train_supervised(input=train_file,
lr=1.0, epoch=100,
wordNgrams=2,
bucket=200000,
dim=50,
loss='hs')
def print_results(N, p, r):
print("Nt" str(N))
print("P@{}t{:.3f}".format(1, p))
print("R@{}t{:.3f}".format(1, r))
result = model.test(test_file)
print_results(*result)
Я читал документацию здесь и проверял также некоторые учебные пособия, но я еще не понял, как определить отчет о классификации. Я думаю, что цикл через test_file
должен быть определен, но в этом случае, какие параметры я должен использовать?
Желаемый результат:
precision recall f1-score support
0 0.832 0.824 0.828 9093
1 0.861 0.867 0.864 11399
accuracy 0.848 20492
macro avg 0.846 0.846 0.846 20492
weighted avg 0.848 0.848 0.848 20492
Спасибо,
Комментарии:
1. Что вы собираетесь делать для оценки классификации? Как обычно, вопрос должен быть дополнен примером желаемого результата.
Ответ №1:
Почему бы вам не разобраться с metrics
библиотекой из scikit-learn
, может быть, это лучший выбор.
Пример кода F1:
f1_score('your_test', 'your_predict', average='macro')
В вашем случае, я думаю, должно быть:
f1_score(test_file, result, average='macro')
Теперь вы можете создать таблицу со всеми оценками, которые вы хотите.
Вам просто нужно импортировать их, например:
from sklearn.metrics import f1_score, precision_score, recall_score, accuracy_score
И вы даже можете добавить больше вещей, например, «матрицу путаницы»:
from sklearn.metrics import confusion_matrix
Пример кода:
confusion_matrix(test_file, result)