当前位置: 首页 > news >正文

我用AI做数据分析之四种堆叠聚合模型的比较

我用AI做数据分析之四种堆叠聚合模型的比较

这里AI数据分析不仅仅是指AI生成代码的能力,我想是测试AI数据分析方面的四个能力,理解人类指令的能力、撰写代码的能力、执行代码的能力和解释结果的能力。如果这四个能力都达到了相当的水准,才可以说真正实现了AI数据分析。而目前AI作为IDE插件的形式,只能说是半自动的AI数据分析。

之前测试过程中,AI在数据清洗方面,包括更改列名、寻找录入错误等方面体现出了优于一般工具的表现,展现了良好地对任务的理解能力和对表格的处理能力,没有涉及撰写代码等能力。

目的

既然有了AI的辅助,我们需要做一些自己能力之上的事情,之前自己对堆叠聚合模型有了解但是了解不多,且没有用Python进行过编码,在相关知识和编码能力上都不能完成对各种堆叠聚合模型的测试和比较,所以这次定的目标是对“常见堆叠聚合模型的测试比较”。

背景

堆叠聚合模型(Stacking Aggregation Model),也被简称为 Stacking 模型,是一种高级的集成学习技术。它的核心思想是将多个不同的基础模型(如决策树、逻辑回归、神经网络等)的预测结果进行二次建模组合 。在这个过程中,第一层由多个不同的基础模型组成,这些基础模型在训练数据上进行训练,然后对测试数据做出预测。这些预测结果会被当作新的特征,输入到第二层的模型(通常称为元模型)中进行训练和预测。通过这种方式,Stacking 模型能够综合利用各个基础模型的优势,挖掘出数据中更复杂的模式,从而有可能获得比单个模型更好的预测性能。

基础模型选择策略:尽量选择多样化的基础模型,比如线性模型(如线性回归、逻辑回归)与非线性模型(如决策树、支持向量机)相结合。不同类型的模型对数据的理解和捕捉模式的能力不同,组合在一起可以覆盖更广泛的特征空间。例如在一个房价预测任务中,线性回归可以捕捉房价与房屋面积等简单线性关系,而决策树则能发现不同区域、房屋类型等复杂条件下的房价规律。
交叉验证策略:在训练 Stacking 模型时,为了避免过拟合和更有效地利用数据,常使用交叉验证。以 k 折交叉验证为例,将训练数据分成 k 份,每次用 k - 1 份数据训练基础模型,然后对剩下的 1 份数据进行预测。这样重复 k 次,就可以得到所有训练数据的预测结果,这些结果作为元模型的训练数据。这种方式确保了基础模型的预测结果是基于未见过的数据,提高了模型的泛化能力。
元模型选择策略:元模型的选择很关键,它需要能够有效整合基础模型的预测信息。常用的元模型有逻辑回归、决策树、神经网络等。如果基础模型的预测结果之间存在复杂的非线性关系,神经网络可能是更好的选择;若希望模型有较好的可解释性,逻辑回归或决策树可能更合适。比如在一个信用风险评估中,如果只需要简单判断风险高低,逻辑回归作为元模型就可以清晰地展示各基础模型预测结果对最终风险判断的影响权重。

结果

AI推荐了四种常见的堆叠聚合模型的组合,分别是:

组合1: logistic(base) + decision tree(base) +logistic(meta)
组合2:logistic(base) + decision tree(base) + neural network(meta) 组合3:
SVC(base) + KNN(base) +logistic(meta) 组合4: SVC(base) + KNN(base) +
neural network(meta)

另外,使用AI形成了分析的基础代码,代码质量还是可以,用到的库比较单一,主要是用scikit-learn中的代码;

但是AI在执行代码方面遇到问题,显示内核读取失败“kernel iopub read failed ”,看来AI在数据执行方面有一定的局限性;之前还遇到一个执行问题是没有相应的库。

结果是在给定的数据集上,组合1的效果最佳,但是在不同的数据集上可能有不同的表现。在这里插入图片描述
用AI解释结果是没问题的,解释仔细也都对。

最后

AI数据分析需要的四个能力中,代码执行部分是短板,但是借助AI,我们已经能做一些能力之上的事情,基础的事情AI已经能做了,把AI这些基础的能力整合起来,规划一些多步骤的任务说明一定的问题,可能更有意义。
项目代码:https://www.heywhale.com/mw/project/67abfca747828d409e8090ea

相关文章:

  • 【devops】 Git仓库如何fork一个私有仓库到自己的私有仓库 | git fork 私有仓库
  • 【git-hub项目:YOLOs-CPP】本地实现01:项目构建
  • ASP.NET Core SignalR实践指南
  • 如何利用Vuex的插件来记录和追踪状态变化?
  • 【DeepSeek】Deepseek辅组编程-通过卫星轨道计算终端距离、相对速度和多普勒频移
  • DFS+回溯+剪枝(深度优先搜索)——搜索算法
  • 如何从0开始将vscode源码编译、运行、打包桌面APP
  • 基于华为云镜像加速器的Docker环境搭建与项目部署指南
  • 【Antv G2 5.x】饼图添加点击事件,获取当前坐标数据
  • Docker 网络的几种常见类型
  • 【腾讯地图】录入经纬度功能 - 支持地图选点
  • MYSQL的管理备份
  • SpringBoot里,什么是状态机?在商城系统的订单管理业务上如何应用?
  • golang下载安装图文教程(Linux环境)
  • 机器学习 - 理论和定理
  • 前端骨架怎样实现
  • 【DeepSeek】DeepSeek概述 | 本地部署deepseek
  • DeepSeek笔记(一):本地部署DeepSeek R1并搭建Web UI实现可视化交互的笔记
  • 开源模型应用落地-Qwen1.5-MoE-A2.7B-Chat与vllm实现推理加速的正确姿势(一)
  • GPT 系列模型发展史:从 GPT 到 ChatGPT 的演进与技术细节
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 印方称所有敌对行动均得到反击和回应,不会升级冲突
  • 宇树科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 欧洲史上最严重停电事故敲响警钟:能源转型如何保证电网稳定?
  • 中国国家电影局与俄罗斯文化部签署电影合作文件