我用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
相关文章:
我用AI做数据分析之四种堆叠聚合模型的比较
我用AI做数据分析之四种堆叠聚合模型的比较 这里AI数据分析不仅仅是指AI生成代码的能力,我想是测试AI数据分析方面的四个能力,理解人类指令的能力、撰写代码的能力、执行代码的能力和解释结果的能力。如果这四个能力都达到了相当的水准,才可…...
《LSTM与HMM:序列建模领域的双雄对决》
在序列建模的广阔领域中,长短期记忆网络(LSTM)和隐马尔可夫模型(HMM)都是极为重要的工具,它们各自有着独特的优势和应用场景。下面将对两者在序列建模上的异同进行深入探讨。 相同点 序列数据处理能力&…...
Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用
Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用 在 Flutter 里,Key 对象存在的目的主要是区分和维持 Widget 的状态,它是控件在渲染树里的「复用」标识之一,这一点在之前的《深入 Flutter 和 Compose 在 UI 渲染刷新时…...
只需三步!5分钟本地部署deep seek——MAC环境
MAC本地部署deep seek 第一步:下载Ollama第二步:下载deepseek-r1模型第三步:安装谷歌浏览器插件 第一步:下载Ollama 打开此网址:https://ollama.com/,点击下载即可,如果网络比较慢可使用文末百度网盘链接 注:Ollama是…...
网络工程师 (31)VLAN
前言 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将物理局域网划分成多个逻辑上独立的虚拟网络的技术。 一、定义与特点 定义:VLAN是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置…...
浏览器网络请求全流程深度解析
一、核心流程概述 现代浏览器的网络请求过程是一个分层协作的精密系统,涉及应用层协议、传输层协议、操作系统内核及网络基础设施的协同工作。整个过程可抽象为以下关键阶段: 请求构建与初始化DNS解析与寻址TCP连接建立HTTP协议交互响应处理与资源解析…...
React历代主要更新
一、React 16之前更新 React Fiber是16版本之后的一种更新机制,使用链表取代了树,是一种fiber数据结构,其有三个指针,分别指向了父节点、子节点、兄弟节点,当中断的时候会记录下当前的节点,然后继续更新&a…...
【数据结构】(8) 二叉树
一、树形结构 1、什么是树形结构 根节点没有前驱,其它节点只有一个前驱(双亲/父结点)。所有节点可以有 0 ~ 多个后继,即分支(孩子结点)。每个结点作为子树的根节点,这些子树互不相交。 2、关于…...
navicat导出表结构到Excel 带字段备注
navicat导出表结构到Excel 带字段备注 SELECTCOLUMN_NAME AS 字段名称,COLUMN_TYPE AS 字段类型, IF( IS_NULLABLE NO, 否, 是 ) AS 是否必填,COLUMN_COMMENT AS 注释 FROMINFORMATION_SCHEMA.COLUMNS WHERE -- 数据库名table_schema vmscenter -- 表名AND table_name y…...
使用pocketpal-ai在手机上搭建本地AI聊天环境
1、下载安装pocketpal-ai 安装github的release APK 2、安装大模型 搜索并下载模型,没找到deepseek官方的,因为海外的开发者上传了一堆乱七八糟的deepseek qwen模型,导致根本找不到官方上传的……deepseek一开源他们觉得自己又行了。 点击之…...
程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<10>
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 今天我们继续来复习指针… 目录 一、看一段代码二、 一维数组传参的本质三、冒泡排序3.1 基本思想四、二…...
FPGA简介|结构、组成和应用
Field Programmable Gate Arrays(FPGA,现场可编程逻辑门阵列),是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物, 是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,…...
[c语言日寄]在不完全递增序中查找特定要素
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
Golang的多团队协作编程模式与实践经验
Golang的多团队协作编程模式与实践经验 一、多团队协作编程模式概述 在软件开发领域,多团队协作编程是一种常见的工作模式。特别是对于大型项目来说,不同团队间需要协同合作,共同完成复杂的任务。Golang作为一种高效、并发性强的编程语言&…...
cv2.Sobel
1. Sobel 算子简介 Sobel 算子是一种 边缘检测算子,通过对图像做梯度计算,可以突出边缘。 Sobel X 方向卷积核: 用于计算 水平方向(x 方向) 的梯度。 2. 输入图像示例 假设我们有一个 55 的灰度图像,像素…...
Windows软件自动化利器:pywinauto python
Pywinauto WindowsAPP UI自动化 Windows软件自动化利器:pywinauto python...
关于 IoT DC3 中驱动(Driver)的理解
在开源IoT DC3物联网系统中,驱动(Driver)扮演着至关重要的角色,它充当了软件系统与物理设备之间的桥梁。驱动的主要功能是依据特定的通信协议连接到设备,并根据设备模板中配置的位号信息进行数据采集和指令控制。不同的…...
LogicFlow自定义节点:矩形、HTML(vue3)
效果: LogicFlow 内部是基于MVVM模式进行开发的,分别使用preact和mobx来处理 view 和 model,所以当我们自定义节点的时候,需要为这个节点定义view和model。 参考官方文档:节点 | LogicFlow 1、自定义矩形节点 custo…...
多模态本地部署ConVideoX-5B模型文生视频
文章目录 一、多模态概念1.多模态学习2. 人机交互3. 健康医疗4. 内容创作和娱乐 二、模型介绍三、环境安装1. 安装工具包2. 模型下载 四、运行代码五、代码解析六、效果生成七. 总结1. 模型介绍2. 部署环境3. 部署步骤4. 生成视频5. 应用场景 一、多模态概念 多模态࿰…...
html 点击弹出视频弹窗
一、效果: 点击视频按钮后,弹出弹窗 播放视频 二、代码 <div class="index_change_video" data-video-src="</...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
