knn多分类预评价指标python
时间: 2023-07-25 20:20:46 浏览: 94
knn分类算法 python代码
KNN多分类预测的评价指标包括精确率(precision)、召回率(recall)、F1值(F1 score)和支持度(support)等,可以使用Scikit-learn库的classification_report函数来输出这些指标。具体代码如下:
```python
from sklearn.metrics import classification_report
# 假设y_test和y_pred分别为测试集的真实标签和预测标签
print(classification_report(y_test, y_pred))
```
其中,y_test和y_pred都是一维的数组,分别代表测试集的真实标签和模型的预测标签。输出的评价指标包括:
- 精确率(precision):指模型预测为某个类别的样本中,真正属于该类别的样本所占的比例。
- 召回率(recall):指某个类别的样本中,被模型正确预测为该类别的样本所占的比例。
- F1值(F1 score):综合考虑精确率和召回率的指标,是二者的调和平均数。
- 支持度(support):指某个类别在测试集中的样本数量。
对于多分类问题,上述指标可以分别计算每个类别的平均值(macro)或加权平均值(weighted),以得到整体的评价指标。具体代码如下:
```python
print(classification_report(y_test, y_pred, target_names=iris.target_names, digits=4))
```
其中,target_names参数可以指定类别的名称,digits参数可以指定输出的小数位数。输出的结果如下:
```
precision recall f1-score support
setosa 1.0000 1.0000 1.0000 17
versicolor 1.0000 0.8571 0.9231 14
virginica 0.8750 1.0000 0.9333 14
accuracy 0.9556 45
macro avg 0.9583 0.9524 0.9521 45
weighted avg 0.9635 0.9556 0.9553 45
```
其中,macro avg是三个类别的平均值,weighted avg是按照每个类别的支持度进行加权后的平均值。这些指标可以帮助我们评估模型的性能,以确定是否需要改进模型或调整超参数。
阅读全文