期刊配图:基于‘UpSet图’展示不同数据预处理对模型性能的影响

机器学习大数据算法

picture.image

✨ 欢迎关注Python机器学习AI ✨

本节介绍:基于

‘UpSet图’

分析不同数据预处理下对模型性能的影响

,数据采用模拟数据无任何现实意义,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与参考一定相同,仅供参考。

详细数据和代码将在稍后上传至交流群,付费群成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。

购买前请咨询,避免不必要的问题。

✨ 参考可视化✨

picture.image

✨ 仿图 ✨

picture.image

✨ 参考可视化解读 ✨

可视化展示不同数据预处理方法(如SG、D1、D2、SNV、MSC)在不同机器学习模型(如AdaBoost、XGBoost、RF、GBDT)下对召回率(Recall)性能的影响。每个模型的性能图表使用条形图表示,条形图的高度表示召回率,图表下方则显示了不同数据预处理方法的组合(通过UpSet图的形式表示),展示了每种数据预处理方式的不同组合对模型的效果,其实这个可视化图并不是严格的UpSet图。完整的UpSet图还包含每个集合中元素的总数量,即这里所展示的对于每种情况评价指标汇总的柱状图

✨ 代码实现 ✨


          
index = pd.MultiIndex.from_tuples(
          
    [(True, False, False, False, False,), (False, True, False, False, False,), 
          
     (False, False, True, False, False,), (False, False, False, True, False,),
          
     (False, False, False, True, True,), (False, True, False, False, True,), 
          
     (True, False, False, False, True,)],
          
    names=['Original', 'Mean Imputation', 'Most Frequent Imputation', 'Drop Missing', 'RFE']
          
)
      

创建一个多重索引(

MultiIndex

),由5个布尔值的元组组成,每个元组表示不同的预处理组合,并且为每个布尔值设置了相应的标签('Original'、'Mean Imputation'、'Most Frequent Imputation'、'Drop Missing'、'RFE')。这些组合可以用来标识不同的数据预处理方法

其实这里就是模拟存在缺失值的数据,并对其进行了不同的缺失值填补方法(如均值填补、最频繁值填补)或直接删除缺失样本,随后进行了特征筛选,最终计算了相应的评价指标


          
data = pd.DataFrame({'value': np.array(results_df['ROC-AUC'])}, index=index)
          
series = data['value'].sort_values(ascending=False)
          
series 
      

picture.image

创建一个包含'ROC-AUC'值的DataFrame,并使用之前定义的

index

作为行索引,然后将该DataFrame按'ROC-AUC'值进行降序排序,并返回排序后的Series


          
from upsetplot import plot
          

          
# 设置绘图的样式
          
plt.figure(figsize=(15, 6),dpi=1200)  
          

          
# 绘制UpSet图,使用排序后的数据
          
ax = plot(series, facecolor="black")
          

          
# 获取绘图返回的 Axes 对象
          
ax = plt.gca()  # 获取当前的 Axes 对象
          

          
# 添加标题并进行格式化
          
plt.suptitle('XGBoost', fontsize=16, weight='bold', color='black', y=1.05)  
          

          
# 修改坐标轴标签的字体大小
          
plt.xlabel('Sets', fontsize=12)
          
plt.ylabel('ROC-AUC', fontsize=12) 
          
for bar in ax.patches:
          
    height = bar.get_height()
          
    ax.text(bar.get_x() + bar.get_width() / 2, height + 0.01, f'{height:.2f}', 
          
            ha='center', va='bottom', fontsize=10, color='black')
          
plt.grid(True, which='both', axis='y', linestyle='--', color='gray', alpha=0.5)
          
plt.tight_layout()
          
plt.savefig("1.pdf", format='pdf', bbox_inches='tight')
          
plt.show()
      

picture.image

使用upsetplot库绘制了一个UpSet图,并对其进行了一系列自定义设置,包括调整图形尺寸、标题、坐标轴标签、显示ROC-AUC值、添加网格线

这张图是一个完整的UpSet图,左下角展示了不同数据预处理方法下评价指标的总和,每一行的黑色圆点表示该数据预处理组合所包含的预处理方法(例如“Most Frequent Imputation”、“Mean Imputation”等)。右上方的条形图展示了每个组合的ROC-AUC值,反映了不同数据预处理方法对模型性能的影响。所以参考图表可以视为一个不完整的UpSet图,缺少了左下角的柱状图。因此,可以将该柱状图删除,因为它在表示不同数据预处理对模型性能的影响时并没有实质性意义。

✨ 该文章案例 ✨

picture.image

在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。

同时,结合提供的免费AI聚合网站进行学习,能够让读者在理论与实践之间实现融会贯通,更加全面地掌握核心概念。

✨ 购买介绍 ✨

本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到 淘宝店铺:Python机器学习AI,或添加作者微信deep_ML联系 ,购买作者的公众号合集。截至目前为止,合集已包含200多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用,包括但不限于ChatGPT、Deepseek、Claude等。

更新的内容包含数据、代码、注释和参考资料。

作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤

购买前请咨询,避免不必要的问题。

✨ 群友反馈 ✨

picture.image

✨ 淘宝店铺 ✨

picture.image

请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信 deep_ML联系

避免淘宝客服漏掉信息

,希望能为您的学习之路提供帮助!

往期推荐

期刊配图:RFE结合随机森林与K折交叉验证的特征筛选可视化

期刊配图:变量重要性排序与顺序正向选择的特征筛选可视化

期刊配图:SHAP可视化改进依赖图+拟合线+边缘密度+分组对比

期刊配图:SHAP蜂巢图与柱状图多维组合解读特征对模型的影响

期刊配图:分类模型对比训练集与测试集评价指标的可视化分析

期刊配图:回归模型对比如何精美可视化训练集与测试集的评价指标

期刊配图:如何同时可视化多个回归模型在训练集与测试集上的预测效果

期刊配图:SHAP可视化进阶蜂巢图与特征重要性环形图的联合展示方法

期刊配图:基于t-sne降维与模型预测概率的分类效果可视化

期刊配图:多种机器学习算法在递归特征筛选中的性能变化图示

picture.image

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

欢迎关注、点赞、转发~

个人观点,仅供参考

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