《Python机器学习原理与算法实现》学习笔记

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

根据输入数据是否具有“响应变量”信息,机器学习被分为“监督式学习”和“非监督式学习”。

“监督式学习”即输入数据中即有X变量,也有y变量,特色在于使用“特征(X变量)”来预测“响应变量(y变量)”。“非监督式学习”即算法在训练模型时期不对结果进行标记,而是直接在数据点之间找有意义的关系,或者说输入数据中仅有X变量而没有y变量,特色在于针对X变量进行降维或者聚类,以挖掘特征变量的自身特征。

“监督式学习”机器学习又分为回归问题和分类问题,在python中,Classifier一般针对分类问题,Regressor一般针对回归问题(logistic除外)。错误率、精度、查准率、查全率都是“分类问题监督式学习”的常用性能度量标准。ROC曲线下方的区域又被称为AUC值,一般情况下AUC值越大,说明学习效果越好。

训练样本:即计算机用来应用算法构建模型时使用的样本。

测试样本:即计算机用来检验机器学习效果、检验外推泛化应用能力时使用的样本    

偏差度量的是学习算法的期望预测与真实结果的偏离程度,反映的是学习算法的拟合能力。

方差度量的是在大量重复抽样过程中,同样大小的训练样本的变动导致的学习性能的变化,反映的是数据扰动所造成的影响,也就是模型的稳定性。

噪声度量的是针对既定学习任务,使用任何学习算法所能达到的期望泛化误差的最小值,属于不可约减误差,反映的是学习问题本身的难度,或者说是无法用机器学习算法解决的问题。噪声大小取决于数据本身的质量,当数据给定时,机器学习所能达到的泛化能力的上限也就确定。

“泛化误差”反映的模型的“泛化”能力,“泛化误差”越小,模型“泛化”能力越强。我们之所以开展机器学习是为了基于既有数据来预测未知,以期进一步改善未来商业表现,所以从应用的角度出发,我们主要关注的是泛化误差而不是经验误差,如果某种机器学习模型比另一种具有更小的泛化误差,那么这种模型就相对更加有效。 为了度量模型的泛化能力,通常我们需要进行样本分割,可以选用的方法包括验证集法、K折交叉验证、自助法、留一法等。 在机器学习项目的数据清洗与特征工程环节,有归一化、标准化、离散化、缺失值处理等多种方式。

input函数用来实现基本的输入;print函数用来实现基本的输出:使用时如果括号内容为字符串,则可以使用搭配单引号、搭配双引号、搭配三引号。

列表:list=[a,b,c,d]。列表中的元素可以为整数、实数、字符串、元组、列表等任意类型。

元组:tuple=(a,b,c,d)。元组为不可变序列,元组中的元素不可单独修改。元组中的元素可以为整数、实数、字符串、元组、列表等任意类型,可以相同(重复),也可以不同,甚至相互不同的类型。

字典:dict = {key1 : value1, key2 : value2 }。字典由键(key)和值(value)成对组成,本质上是键和值的映射。

索引就是序列中的每个元素所在的位置,可以通过从左往右的正整数索引,也可以通过从右往左的负整数索引。从左往右的正整数索引:在Python序列中,第一个元素的索引值为0,第二个元素的索引值为1,以此类推。假设序列中共有n个元素,那么最后一个元素的索引值为n-1。从右往左的负整数索引:在Python序列中,最后一个元素的索引值为-1,倒数第二个元素的索引值为-2,以此类推。

假设序列中共有n个元素,那么第一个元素的索引值为-n。Python中使用数字n乘以一个序列(非numpy模块中的数组、非pandas模块中的序列,只是普通的序列)会生成新的序列,内容为原来序列被重复n 次的结果 序列的切片就是将序列切成小的子序列,通过切片操作可以访问一定范围内的元素或者生成一个新的子序列。

Python的保留字区分大小写。

流程控制语句: 选择语句对应选择执行,选择语句包括三种:if语句,if…else语句和if…elif…else语句。if语句相当于“如果……就……”;if…else语句相当于“如果……就……,否则……”;if…elif…else语句相当于“如果……则……,否则如果满足某种条件则……,不满足某种条件则……,” 循环语句包括两种:while语句和for语句。while循环语句通过设定条件语句来控制是否循环执行循环体代码块中的语句,只要条件语句为真,循环就会一直执行下去,直到条件语句不再为真为止。for循环语句为重复一定次数的循环,适用于遍历或迭代对象中的元素。 跳转语句依托于循环语句,适用于从循环体中提前离开,比如在while循环达到结束条件之前离开,或者在for循环完成之前离开。跳转语句包括两种:break语句和continue语句。

线性回归算法: 理解起来比较简单,实现起来也比较容易;是许多强大的非线性模型的基础;具有一定的稳定性和可解释性;蕴含着机器学习的很多重要思想。

朴素贝叶斯算法: 朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时特征变量之间相互条件独立。包括高斯朴素贝叶斯、多项式朴素贝叶斯、补集朴素贝叶斯、二项式朴素贝叶斯等,均可通过Python的sklearn模块实现。

决策树算法: 常用的特征变量选择及其临界值确定方法包括信息增益(Information Gain)、增益比率(Gain Ratio)、基尼指数(Gini Index)。在决策树算法中,先采用的特征变量未必是贡献最大的,而是要看信息增益等指标的变动程度。

二元Logistic回归算法:二元Logistic回归算法中所估计的参数,不是特征变量对响应变量的边际效应,而是一种“概率优势比”的概念。

集成学习(组合学习、模型融合)的方式,即将单一的弱学习器组合在一起,通过群策群力形成强学习器,达到模型性能的提升。

针对集成方法的不同,集成学习可以分为并行集成和串行集成。 如果弱学习器间存在强依赖的关系,后一个弱学习器的生成需依赖前一个弱学习器的结果,则集成学习方式为串行集成,代表算法为Boosting(提升法),包括AdaBoost、GBDT、XGBoost等。其中AdaBoost算法会使得难于分类的样本的权值呈指数增长,后续的训练过程将会过于偏向这类困难样本,从而导致AdaBoost算法容易受极端值干扰。

回归问题损失函数常用平方损失函数、拉普拉斯损失函数(绝对损失函数)、胡贝尔损失函数和分位数损失函数,分类问题损失函数常用指数损失函数、逻辑损失函数、交叉熵损失函数。

如果弱学习器间不存在依赖关系,可以同时训练多个基学习器,适合分布式并行计算,则集成学习方式为并行集成,代表算法为装袋法、随机森林算法,其中装袋法是随机森林算法一种特例。装袋法在构建基分类器时,将所有特征变量都考虑进去,随机森林算法仅考虑部分特征变量。

自助法本质上是一种有放回的再抽样。

入门学Python,也真的不难。关键是找到学习入口,如果只是看语法,会很枯燥,也记不住。需要找到应用场景,也就是说要用Python来干什么?比如做个表、做个图,还是开展个数据分析、甚至建个模型。少儿编程很多都用Python了,为什么小孩们都能学的进去?因为学完了可以接着用于开发一个小游戏,回馈很快。从我周边朋友的经历来看,真正学进去的,基本上都是有数据分析需要的朋友们,因为工作中真的需要。所以我给大家推荐的学习场景入口是数据应用。


针对数据分析或机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析、机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。 为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。山东大学经济学院教学实验中心主任 副教授 韩振,德勤华永会计师事务所 华文伟 合伙人,首创证券深圳分公司机构业务部 樊磊 总经理 中国准精算师,山东省农村信用社联合社数据管理项目组 郝路安 总监等一众大牛联袂推荐。这本书在出版之前曾开发成9次系列课程,在恒丰银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析、机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。


《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.mfbz.cn/a/281744.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ros2查看launch文件内需要提供的参数(接口):

格式:ros2 launch --show-args 包名称 launch文件名称 例如: ros2 launch --show-args ros_gz_sim gz_sim.python.py

区块链的三难困境是什么,如何解决?

人们需要保持社交、工作和睡眠之间的平衡,并且努力和谐相处。同样的概念也反映在区块链的三难困境中。 区块链三难困境是一个术语,指的是现有区块链的局限性:可扩展性、安全性和去中心化。这是一个存在了几十年的设计问题,其问题的…

【python高级用法】迭代器、生成器、装饰器、闭包

迭代器 可迭代对象:可以使用for循环来遍历的,可以使用isinstance()来测试。 迭代器:同时实现了__iter__()方法和__next__()方法,可以使用isinstance()方法来测试是否是迭代器对象 from collections.abc import Iterable, Iterat…

Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String&am…

人工智能的第一性原理

今天跟大家分享一篇 北师大 - 图像处理研究中心主任 郭平教授的一篇文章 通过“四个问题”, 解释了人工智能的第一性原理 提出了如何运用第一性原理思维 来解决人工智能缺乏基本常识的问题 并且他建议将最小作用量原理 作为人工智能的第一性原理 什么是第一…

排序算法讲解

1)排序思想: 2)排序代码: 3)注意点: 4)时间/空间复杂度和稳定性 下面的排序是以实现升序讲解的。 (一)直接插入排序 1)排序思想: 把待排序的…

【c语言】飞机大战2

1.优化边界问题 之前视频中当使用drawAlpha函数时,是为了去除飞机后面变透明,当时当飞机到达边界的时候,会出现异常退出,这是因为drawAlpha函数不稳定,昨天试过制作掩码图,下载了一个ps,改的话&#xff0c…

centos7安装nginx并安装部署前端

目录: 一、安装nginx第一种方式(外网)第二种方式(内网) 二、配置前端项目三、Nginx相关命令 好久不用再次使用生疏,这次记录一下 一、安装nginx 第一种方式(外网) 1、下载nginx ng…

Jenkins基础教程

目录 第一章、快速了解Jenkins1.1)Jenkins中一些概念介绍1.2)Jenkins和maven用途上的区别1.3)为什么使用Jenkins1.4)学习过程中的疑问 第二章、安装Jenkins2.1)安装之前的准备2.2)Windows中Jenkins下载安装…

DrGraph原理示教 - OpenCV 4 功能 - 单通道图

通道 OpenCV的核心处理对象是Mat,大体是一个二维数组,加上了各种功能函数。 很多的图像处理,会在单通道或二值化的基础上进行,比如连通域、目标识别等。这里的通道就是channels。 不同的图像处理算法可能对通道数有特定的要求。例…

计算机组成原理复习6

总线结构与控制练习题 计算机系统为什么采用总线结构? 解析:在冯诺依曼计算机体系当中,把计算机基本组成分成了五大部分。运算器,控制器,存储器,输入设备和输出设备。我们可以把运算器和控制器制作在一个芯…

字符串与模拟法

加密英文 输入一个字符串可用getline(cin,数组名) 字典序 在字符串中寻找子字符串 分糖果 代码 猴子选大王 代码 如果n号猴子被选中,则使得n号的猴子变成false,未出局的猴子为true。 if(pn1) p1;这个是将超出的下标重新变回1号,使其重新循…

DNS域名查询过程

目录 DNS(Domain Names System) 域名转IP IP转域名 域名 域名查询流程 浏览器DNS缓存 操作系统缓存 本地host文件 完整流程 递归查询 迭代查询 DNS(Domain Names System) 域名系统,将域名和 IP 地址进行转…

模型 冰山理论

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。冰山下面才是重点。 1 冰山理论的应用 1.1 冰山理论在生活中的常见应用 人际交往:在人际交往中,很多人只关注表面的行为和语言,而忽略了内在的情感和动…

免费的云服务器推荐~三丰云

对于许多初创企业和小型公司来说,寻找一个经济实惠且可靠的云服务提供商是至关重要的。在这方面,三丰云以其免费虚拟主机和云服务器吸引了大量用户。 1. 注册与界面 注册三丰云的账户过程简单明了,只需按照步骤填写必要信息即可。其界面设计…

Unity之地形的构建

PS:公司没活干,好无聊偷偷摸鱼学Unity,害怕自己学完之后忘记,写下这一篇博客 先来看一下效果图:有山有水有树有草地 创建一个新的Unity3D项目 这里要用到Unity官方的免费资源包(现在好像已经下架了百度网盘…

Mybatis分页插件之PageHelper生效and失效原理解析

文章目录 前言整合PageHelperPageHelper生效原理PageHelper的分页参数和线程绑定核心拦截逻辑生成分页SQLdialect.afterAll() PageHelper失效原理分页失效案例分页失效原理总结 Mybatis拦截器系列文章:从零开始的 MyBatis 拦截器之旅:实战经验分享 构建自…

S32K312使用ITCM向FLASH代码区写入数据

使用C40_IP的系列方法向FLASH代码区写入数据时,程序会卡死在读取写操作的状态C40_Ip_MainInterfaceWriteStatus()这个方法中。本文主要介绍S32K312通过ITCM的方式,通过C40_IP的方法向FLASH代码区成功写入数据的方法和步骤。 首先,验证一下C4…

macos下php 5.6 7.0 7.4 8.0 8.3 8.4全版本PHP开发环境安装方法

在macos中如果使用brew 官方默认的core tap 只可以安装官方最新的稳定版PHP, 如果想要安装 php 5.6 或者 php 8.4版本的PHP就需要使用第三方的tap , 这里分享一个比较全面的brew tap shivammathur/php 这个tap里面包含了从php5.6到最新版php8.4的所有可用最新版本PHP, 而且是同…

python大于等于小于等于,python大于等于怎么写

大家好,小编为大家解答python中大于等于且小于等于的问题。很多人还不知道python大于号小于号如何运用,现在让我们一起来看看吧! 大家好,小编来为大家解答以下问题,python中大于并小于一个数代码,python 大…
最新文章