繁体   English   中英

如何在 FastText 中打印分类报告?

[英]How to print classification report in FastText?

我正在使用 FastText 并评估我的分类结果(二元分类),我想打印分类分数。 实际上,作为 output,我有精确度和召回率。 这是我的代码:


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的循环,但在这种情况下,我必须使用哪些参数?

所需的 output:

            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

谢谢,

你为什么不处理来自scikit-learnmetrics库,也许是一个更好的选择。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM