Как распечатать отчет о классификации в 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("N\t" + 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

Спасибо,


person Pelide    schedule 18.12.2020    source источник
comment
Что вы хотите для получения классификационного балла? Как обычно, вопрос следует дополнить примером желаемого результата.   -  person Stefano Fiorucci - anakin87    schedule 18.12.2020


Ответы (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)
person Armonía.Py    schedule 05.01.2021