一文讲透Python机器学习中的K折交叉验证法

1.K折交叉验证法的基本原理

K折交叉验证是针对验证集法的另外一种改进方式,也广泛用于机器学习实践。具体的操作方式就是首先把样本全集采用分层抽样的方式随机划分为大致相等的K个子集,每个子集包含约1/K的样本,K的取值通常为5或者10,其中10最为常见。然后,每次都把K-1个子集的并集,也就是约(K-1/K的样本作为训练集,把1/K的样本作为测试集,基于训练集训练获得模型,基于测试集进行评价,计算测试集的均方误差。最后,将K次获得的K个验证集的均方误差进行平均,即为对测试误差的估计结果。

2.10折交叉验证法的简单示意图

10折交叉验证的简单示意图如图8.14所示。

图8.14  10折交叉验证的简单示意图

K折交叉验证由于是针对K个测试集的均方误差进行平均,因此较好地解决了验证集法的“稳定性不足”的问题;同时,由于进行了“交叉”验证,因此会覆盖到样本全集,所有的样本都有机会参与到训练集、测试集中,因而较好地解决了验证集法的“信息损失较为明显”的问题。

3.留一法的基本思想

假定样本全集中有n个样本,如果采取n折交叉验证,那么只有1种划分方式,即每个样本都构成1个测试集,其他n-1个样本构成训练集,这种方法被称为“留一法”,属于K折交叉验证方法的特例。在“留一法”情形下,由于训练集相对于样本全集只减少了1个样本,因此它高度接近使用样本全集进行训练的结果,其评估结果也是相对准确的。但是,“留一法”的缺陷也很明显,那就是计算量非常大,有多少个样本就需要训练多少次模型,然后求平均值,如果是针对大数据样本,那么其计算时间开销将是非常大的,而且根据“没有免费的午餐定理(No Free Lunch Theorem)”“留一法”也不可能在所有情形下都优于其他算法。

4.K折交叉验证法中K值的确定

关于确定K值的问题,实质上涉及偏差和方差权衡的问题。如果K的值非常大,比如上述的“留一法”,那么其偏差会比较小,但是由于“留一法”每次训练集的样本变化比较小,只有1个样本发生变动,因此其结果之间存在很高的正相关性,基于这些高度相关的结果进行平均,会导致其方差比较大。而如果K的值非常小,那么训练集在样本全集中的占比比较小,会产生相对较大的偏差,但是由于训练集较少,因此每次样本变化比较大,结果之间的相关性相对较小,将结果进行平均得到的方差也会相对较小。

上述内容节选自《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。

5.针对数据分析机器学习推荐两本入门级的图书

针对数据分析机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。

(1)《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)

为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。恒丰银行总行副行长郑现中,山东大学经济学院教学实验中心主任 副教授 韩振,德勤华永会计师事务所 华文伟 合伙人,首创证券深圳分公司机构业务部 樊磊 总经理 中国准精算师,山东省农村信用社联合社数据管理项目组 郝路安 总监等一众大牛联袂推荐。这本书在出版之前曾开发成9次系列课程,在恒丰银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。

(2)《Python数据科学应用从入门到精通》(张甜 杨维忠 编著 2023年11月新书 清华大学出版社)

《Python数据科学应用从入门到精通》一书,旨在教会读者实现全流程的数据分析,并且相对《Python机器学习原理与算法实现》一书增加了很多概念性、科普性的内容,进一步降低了学习难度。国务院发展研究中心创新发展研究部第二研究室主任杨超 ,山东大学经济学院金融系党支部书记、副主任、副教授、硕士生导师张博,山东管理学院信息工程学院院长 袁锋 教授、硕士生导师,山东大学经济学院刘一鸣副研究员、硕士生导师,得厚投资合伙人张伟民等一众大牛联袂推荐。书中全是干活,买这一本书相当于一下子得到了5本书(Python基础、数据清洗、特征工程、数据可视化、数据挖掘与建模),而且入门超级简单,不需要编程基础,也不需要过多数学推导,非常适用于零基础学生。全书内容共分13章。其中第1章为数据科学应用概述,第2章讲解Python的入门基础知识,第3章讲解数据清洗。第4~6章介绍特征工程,包括特征选择、特征处理、特征提取。第7章介绍数据可视化。第8~13章介绍6种数据挖掘与建模方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。从数据科学应用和Python的入门,再到数据清洗与特征工程,最终完成数据挖掘与建模或数据可视化,从而可以为读者提供“从拿到数据开始,一直到构建形成最终模型或可视化报告成果”的一站式、全流程指导。

两本书随书赠送的学习资料也很多,包括全部的源代码、PPT、思维导图,还有10小时以上的讲解视频,每一章后面还有练习题及参考答案,还有学习群,相对于只看网络上的视频,一方面更加系统、高效,另一方面照着书一步步操作学起来也事半功倍。全网热销中,当当、京东等平台搜索“Python机器学习 杨维忠”“Python数据科学 杨维忠”即可。

《Python机器学习原理与算法实现》(杨维忠、张甜著,2023年2月,清华大学出版社),适用于学习Python/机器学习

《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)适用于学习数据分析、数据科学、数据可视化等。

创作不易,恳请多多点赞,感谢您的支持!也期待大家多多关注我,让我共同学习数据分析知识。


http://www.niftyadmin.cn/n/5236787.html

相关文章

半导体封装之倒装封装 (Flip Chip)

倒装封装 (Flipchip)是相对于引线键合(Wire Bonding)来说的,之所以叫做倒装,是因为flip chip是正面朝下放置。倒装芯片技术是通过芯片上的凸点直接将元器件朝下互连到基板、载体或者电路板上。引线键合的连接方式是将芯片的正面朝…

SQL -高阶3

zstarling 字符串拼接与类型转换最大,最小值,提取日期部分的数值日期截断 字符串拼接与类型转换 新语法SQL delete from public.basiclaw_qr_staff_ac ct where batch_date || data_dt || :: date and biz_line || biz_line || ;详解 该 SQL 语句…

ssm土家风景文化管理平台源码和论文答辩PPT

摘要 土家风景文化管理平台是土家风景文化管理必不可少的一个部分。在风景文化管理的整个过程中,平台担负着最重要的角色。为满足如今日益复杂的管理需求,各类土家风景文化管理平台也在不断改进。本课题所设计的土家风景文化管理平台,使用jav…

easyrecovery2024绿色版中文语言电脑数据恢复工具

平时很多人都会把自己工作时,或者生活中的数据存储在我们的电脑上,很多时候,由于我们的误操作或者是其它某些问题,很容易就会误删除一些文件数据了,尤其是一些电脑出现故障,总是会导致数据丢失,…

(Linux2.6内核)进程调度队列与切换

个人主页:Lei宝啊 愿所有美好如期而遇 我们首先来了解几个概念 1. 进程在CPU上运行的时候,一定要运行完才行吗?答案是否定的,我们大部分的操作系统,主流就是分时操作系统,即基于时间片进程轮转执行的。 …

把大模型塞进终端,能让消费电子市场回暖吗?

过去几个月时间里,“把大模型塞进终端”已然成了消费电子产业上下游心照不宣的共识。 高通、AMD、英特尔等上游的芯片厂商,争相喊出了混合AI、终端AI、AI计算等概念,努力向外界讲述终端AI化的想象空间;华为、小米、vivo等手机厂商…

少走弯路:OpenCV、insightface 等多方案人脸推理和识别

脑壳有包又花时间折腾了一下,其实之前也折腾过,主要是新看了一个方法 在下图中查找脸部 第一种方案: 使用了opencv 的cv2.FaceDetectorYN. ,完整代码如下: import numpy as np import cv2imgcv2.imread("00000…

leetcode_1423 可获得的最大点数

1. 题意 给定一个数组,每次只能从头和尾进行选择。 选择k次当前头或者尾,问能取到的最大值。 可获得的最大点数 2. 题解 主要难点是意识到这是一个滑动窗口问题。 2.1 滑动窗口 令数组长度为 s z sz sz 令 s _ w ( p o s , k ) s\_w(pos, k) s_w(po…