期刊文章配图:基于雷达图的多机器学习模型表现评估对比

机器学习关系型数据库智能语音交互

picture.image

背景

在机器学习和数据分析中,模型性能的对比是评估不同算法效果的关键环节,然而,当面对多个模型和多个评价指标时,如何直观地展示这些模型的优劣,往往是一个挑战,在这篇文章中,采用了一种直观且富有表现力的可视化方式——雷达图,来对比多个机器学习模型在指标上的表现

雷达图,又称蜘蛛网图,是一种将多维数据映射到二维平面上的图形,通过雷达图,可以同时展示多个模型在各项指标上的表现,如R方、准确率、精确率、召回率和F1得分等不局限于回归预测还是分类模型,这种图形的优势在于,它能够一目了然地展示出每个模型的优缺点,帮助快速找到在某些指标上表现突出或存在不足的模型,尤其在面对多个模型时,雷达图可以通过不同区域的覆盖面积来反映模型的整体表现,使得复杂的数据变得更加易于理解

picture.image

该文献利用雷达图展示了多种预测因子对不同临床结局(如全因死亡、心肌梗死和重大出血)的影响,通过这种可视化方式,研究人员能够直观地比较每个因子的相对重要性,因此,将在本文中尝试复现该文献中的雷达图,并以此为基础对比不同机器学习模型的性能,帮助更直观地理解每种算法在实际应用中的表现差异

代码实现

初代雷达图


          
import numpy as np
          
import matplotlib.pyplot as plt
          
plt.rcParams['font.family'] = 'Times New Roman'
          
plt.rcParams['axes.unicode_minus'] = False
          
# 提取数据
          
categories = ['RF', 'DT', 'XGBoost', 'SVM', 'KNN', 'Logistic Regression', 'Catboost', 'MLP']
          
data = [0.78, 0.65, 0.85, 0.72, 0.70, 0.76, 0.68, 0.74]
          

          
# 计算角度,每个类别对应一个角度
          
angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
          

          
# 闭合角度,使得雷达图形成闭环
          
angles += angles[:1]
          

          
# 设置图形的极坐标,并定义半径范围为 [0, 1]
          
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True), dpi=1200)
          

          
# 调整半径范围
          
ax.set_ylim(0, 1.001)
          

          
# 绘制填充和线条
          
values = data + data[:1]  # 闭合数据
          
ax.fill(angles, values, alpha=0.25, label='Model Performance')
          
ax.plot(angles, values, marker='o')
          

          
# 设置空的y轴标签
          
ax.set_yticklabels([])
          
# 设置x轴的角度刻度
          
ax.set_xticks(angles[:-1])
          
# 设置x轴的标签
          
ax.set_xticklabels(categories, fontsize=10)
          
ax.set_title('Multi-model comparison', pad=20)
          
plt.savefig('Multi-model comparison.pdf', format='pdf', bbox_inches='tight')
          
plt.show()
      

picture.image

用于生成一个基本的雷达图,用于对比不同机器学习模型在多个指标上的性能表现,通过极坐标的方式,将每个模型的得分可视化为一个闭合的多边形,使得各模型之间的优劣一目了然。不过,这个版本的雷达图还比较简陋,缺乏进一步的美化和优化,比如缺少不同颜色区分的填充区域、没有显示各个数据点的具体数值,也没有对图例进行更详细的说明,因此,它适合作为初步的可视化参考,但在实际应用中,可能需要进一步调整和改进

对于读者而言着重关注的参数为categories和data:

  • categories:模型名称列表,对应雷达图的各个轴,如‘RF’、‘DT’等,表示随机森林、决策树等模型。读者可以将这个列表替换为自己的模型名称,使得图表适应不同的模型对比
  • data:每个模型在某一指标上的得分(作者这里为假设值),用于绘制每个模型的性能表现。读者可以将此数组替换为自己模型的实际得分数据,如R方、准确率、F1得分等,即可生成适合自身需求的雷达图

二代雷达图

picture.image

这个二代雷达图相较于初代版本有了显著改进,整体美观度和数据的可读性大大提升,且在视觉样式、刻度标注、以及填充效果上与文献中的雷达图几乎完全一致。然而,它仍然存在一个不足之处:尽管不同模型的数据展示更为直观,但并没有特别突出最优模型的表现,这可能会让读者在快速比较时难以一眼识别出表现最好的模型,代码获取:如果您希望获取本文展示的改进版代码,请添加作者微信联系获取

代雷达图

picture.image

通过在雷达图中使用星号(*)标记数据中的最大值来突出最优模型的表现,通过这种方式,最优模型在图中显得更加突出,便于一眼识别出表现最好的模型,代码获取:如果您希望获取本文展示的改进版代码,请添加作者微信联系获取

往期推荐

SCI图表复现:整合数据分布与相关系数的高级可视化策略

SCI图表:基于相关性和标准差的多模型评价——泰勒图解析

SCI图表复现:利用小提琴图折线图综合展示训练集、验证集、测试集模型性能对比

复现SCI文章 SHAP 依赖图可视化以增强机器学习模型的可解释性

SCI图表复现:优化SHAP特征贡献图展示更多模型细节

复现 Nature 图表——基于PCA的高维数据降维与可视化实践及其扩展

复现 Nature 图表可视化——基于模型残差分析与显著性检验的模型解释

SCI图表复现:特征相关性气泡热图展示

期刊文章配图:斯皮尔曼相关系数热图反应非线性变量相关性

picture.image

picture.image

picture.image

微信号|deep_ML

欢迎添加作者微信进入Python、ChatGPT群

进群请备注Python或AI进入相关群

无需科学上网、同步官网所有功能、使用无限制

如果你对类似于这样的文章感兴趣。

欢迎关注、点赞、转发~

个人观点,仅供参考

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论