[英]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-learn
的metrics
库,也许是一个更好的选择。
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.