![](/img/trans.png)
[英]precision_recall_fscore_support return the same value precision recall
[英]Scikit-learn: precision_recall_fscore_support returns strange results
我正在做一些文本最小化/分類,並嘗試使用sklearn.metrics
模塊中的precision_recall_fscore_support
函數評估性能。 我不確定如何創建一個很小的示例來重現該問題,但是也許有人可以提供幫助,因為這顯然是我所缺少的。
前述功能除其他外還返回對每個類的支持。 文檔說明
支持:int(如果平均值不是None)或int數組,形狀= [n_unique_labels] : y_true中每個標簽的出現次數。
但就我而言,返回支持的類的數量與測試數據中不同類的數量不同。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
classifier = svm.SVC(kernel="linear")
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
prec, rec, fbeta, supp = precision_recall_fscore_support(y_test, y_pred)
print(len(classifier.classes_)) # prints 18
print(len(supp)) # prints 19
print(len(np.unique(y_test))) # prints 18
怎么會這樣? 如何支持不在數據中的類?
我不確定是什么問題,但是就我而言,分類器學習的類與測試數據中出現的類之間似乎不匹配。 可以通過顯式命名函數來強制函數為正確的類計算性能指標。
prec, rec, fbeta, supp = precision_recall_fscore_support(y_test, y_pred, labels=classifier.classes_)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.