需求分析
做毕设的时候发现需要用到各个评价指标的随机划分时的数值,所以就简单列了两个 y_pred 和 y_true 的列表后,调用sklearn的指标包进行计算。
需求
在做机器学习的多模型对比时,需要对各个模型在同个数据集上的评价指标进行对比,以凸显主打模型的优势,其中,对指标结果进行可视化是最直观的。
在毕业设计中,为了凸显模型的优越性,使用雷达图对模型指标进行评判,由于有些模型的性能较差,为了更好的展示模型效果,将对模型与随机划分(即二分类五五开的情形)的指标状况进行比较。
一、随机划分
随机划分的实例如下:
y_pred = [1, 1, 0, 0, 1, 1, 0, 0]
y_true = [1, 0, 1, 0, 1, 0, 1, 0]
上述的y_pred表示模型预测的结果,y_true表示数据的真实标签,从上述结果可以看出,模型对数据的划分结果为五五开。
二、指标结果
1.引入库
必要的评价指标差不多就这几个啦
from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score, \
cohen_kappa_score, matthews_corrcoef, roc_auc_score
2.读入数据
代码如下:
ms = confusion_matrix(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
kappa = cohen_kappa_score(y_true, y_pred)
matthews = matthews_corrcoef(y_true, y_pred)
auc = roc_auc_score(y_true, y_pred)
print(ms)
print(precision)
print(recall)
print(f1)
print(kappa)
print(matthews)
print(auc)
上方分别计算了混淆矩阵、精确率、召回率、F1、kappa系数、马修斯相关系数和AUC面积。
3.结果展示
代码如下:
# 混淆矩阵:
[[2 2]
[2 2]]
# 精确率:
0.5
# 召回率:
0.5
# F1:
0.5
# kappa系数:
0.0
# 马修斯相关系数:
0.0
# AUC面积:
0.5
4.雷达图
雷达图结果如下:
这样的图可以展示模型的最低要求,即模型各个指标效果只有大于这个指标图,才具有一定的分类作用。
总结
这篇内容其实没啥用,只是在做毕设的时候一直不知道kappa系数和马修斯相关系数在随机划分时的数值,所以才做了一个小实验,需要的看看就好。