KNeighborsClassifier 的输出加权 f1 分数

Output weighted f1-score for KNeighborsClassifier

我试图在 KNeighborsClassifier 中仅输出测试数据的加权 f1 分数。

我能做到:

neigh = KNeighborsClassifier(n_neighbors=10)
neigh.fit(X_train, y_train) 
result = neigh.predict(X_test)

print(classification_report(test_tags, result))

返回:

             precision    recall  f1-score   support

          0       1.00      0.40      0.57         5
          2       0.00      0.00      0.00         1
          3       0.20      1.00      0.33         1

avg / total       0.74      0.43      0.46         7

我还知道:

sklearn.metrics.f1_score.

并理解 http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html 上的示例 .

from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
f1_score(y_true, y_pred, average='weighted')  

但是我如何将它应用到我上面的 KNeighborsClassifier 代码中呢?

用下面的方法解决。

from sklearn.metrics import precision_recall_fscore_support

neigh = KNeighborsClassifier(n_neighbors=10)
neigh.fit(X_train, y_train) 
result = neigh.predict(X_test)

precision_recall_fscore_support(test_tags, result, average='weighted')[2]

其中test_tags为真实值,result为预测值。