[英]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.