簡體   English   中英

Scikit學習:precision_recall_fscore_support返回奇怪的結果

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM