新書推薦:
《
巨人传(插图珍藏本)
》
售價:HK$
705.6
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:HK$
76.7
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:HK$
94.4
《
封建社会农民战争问题导论(光启文库)
》
售價:HK$
68.4
《
虚弱的反攻:开禧北伐
》
售價:HK$
92.0
《
泰山:一种中国信仰专论(法国汉学经典译丛)
》
售價:HK$
81.4
《
花外集斠箋
》
售價:HK$
151.0
|
編輯推薦: |
顺序渐进地从Python基础知识、数据分析与可视化基础到机器学习进行讲解。案例丰富、结构清晰、简单明了。适合作为本科高年级或研究生相关课程的教材,也适合作为工程技术人员的参考书。配套微课视频、教学课件、源代码等资源。
|
內容簡介: |
本书首先简要介绍Python语言的基础知识,为后续内容的学习提供基础,接着介绍NumPy、Matplotlib和Pandas三个数据分析基础模块的用法,同时也为后面基于scikitlearn的机器学习提供基础,最后介绍基于scikitlearn机器学习及其模型的评价方法、超参数调优方法。全书通过大量案例,希望能让读者快速提高实践能力。 本书适合作为高校本科生或研究生数据分析、机器学习等相关课程的教材或参考书,也可作为数据分析和机器学习爱好者的自学教程,还可以作为相关科研工作者与工程实践者的参考书。
|
目錄:
|
源码下载
第1章Python语言与开发环境概述
1.1Python语言的特点
1.2Python的下载与安装
1.3开始使用Python
1.3.1交互方式
1.3.2代码文件方式
1.3.3代码文件的打开
1.3.4代码风格
1.4模块与库
1.4.1模块及其导入方式
1.4.2标准模块与第三方模块
1.5使用帮助
1.6Anaconda简介
1.6.1Anaconda模块的安装
1.6.2Spyder的使用
1.6.3Jupyter Notebook的使用
1.6.4Jupyter Notebook默认路径的设置
1.6.5任意路径下创建Jupyter Notebook文件
习题1
第2章Python语言基础
2.1控制台的输入与输出
2.1.1数据的输入
2.1.2数据的输出
2.2标识符、变量与赋值语句
2.2.1标识符
2.2.2变量
2.2.3赋值语句
2.3常用数据类型
2.3.1数值类型
2.3.2布尔类型
2.3.3常用序列类型
2.3.4映射类型
2.3.5集合类型
2.4运算符与表达式
2.4.1运算符分类
2.4.2运算规则与表达式
2.4.3条件表达式
2.4.4复合赋值运算符
2.5分支结构
2.5.1单分支if语句
2.5.2双分支if/else语句
2.5.3多分支if/elif/else语句
2.5.4分支结构的嵌套
2.5.5分支结构的三元运算
2.5.6match/case分支结构
2.6循环结构
2.6.1简单的while循环结构
2.6.2简单的for循环结构
2.6.3break语句和continue语句
2.6.4循环的嵌套
2.7常用组合类型
2.7.1列表
2.7.2元组
2.7.3列表与元组之间的相互生成
2.7.4字符串
2.7.5字典
2.7.6集合
2.7.7推导式
2.7.8常用的内置函数
2.8正则表达式
习题2
第3章函数
3.1函数的定义
3.2函数的调用
3.3形参与实参
3.4函数的返回
3.5位置参数与关键参数
3.6默认参数
3.7个数可变的参数
3.7.1以组合对象为形参接收多个实参
3.7.2以组合对象为实参给多个形参分配参数
3.7.3形参和实参均为组合类型
3.8参数与返回值类型注解
3.9lambda表达式
3.10函数式编程的常用类与函数
习题3
第4章自定义类与对象
4.1Python中的对象与方法
4.2类的定义与对象的创建
4.3类的继承
4.3.1父类与子类
4.3.2继承的语法
4.3.3子类继承父类的属性
4.3.4子类继承父类的方法
习题4
第5章NumPy数据处理基础
5.1数据结构
5.1.1利用numpy.array()函数创建数组
5.1.2访问数组对象属性
5.1.3数组对象的类型
5.1.4创建常用数组
5.2数据准备
5.2.1随机数的生成
5.2.2NumPy数组在文本文件中的存取
5.3常用数组运算与函数
5.3.1数组的索引
5.3.2数组的切片
5.3.3改变数组的形状
5.3.4数组对角线上替换新元素值
5.3.5用np.newaxis或None插入一个维度
5.3.6数组的基本运算
5.3.7数组的排序
5.3.8数组的组合
5.3.9数组的分割
5.3.10随机打乱数组中的元素顺序
5.3.11多维数组的展开
5.3.12其他常用函数与对象
5.4使用NumPy进行简单统计分析
5.5数组在其他文件中的存取
5.5.1数组在无格式二进制文件中的存取
5.5.2数组在npy文件中的存取
5.5.3数组在npz文件中的存取
5.5.4数组在hdf5文件中的存取
习题5
第6章Matplotlib数据可视化基础
6.1绘制基本图形
6.1.1折线图
6.1.2线条属性的设置
6.1.3图标题、坐标轴标题和坐标轴范围的设置
6.1.4绘制多图与图例的设置
6.1.5散点图
6.1.6直方图
6.1.7饼图
6.2绘制多轴图
6.2.1用subplot()函数绘制多轴图
6.2.2用subplot2grid()函数绘制多轴图
6.2.3多轴图的轴展开与遍历
6.3坐标轴的刻度标签
6.4坐标轴的主次刻度、网格设置
6.5移动坐标轴
6.6文字说明和注释
6.7显示图片
6.8日期作为横坐标
6.9绘制横线与竖线作为辅助线
6.9.1使用hlines()和vlines()函数绘制辅助线
6.9.2使用axhline()和axvline()函数绘制辅助线
6.10绘制其他二维图表
6.10.1箱线图
6.10.2小提琴图
6.10.3热力图
6.10.4填充图
6.10.5等高线图
6.11绘制三维图表
6.11.1三维折线图
6.11.2三维散点图
6.11.3三维曲面图
习题6
第7章Pandas数据处理与分析
7.1数据结构与基本操作
7.1.1Series基础
7.1.2DataFrame基础
7.2文件与数据库中存取DataFrame对象
7.2.1csv文件中存取DataFrame对象
7.2.2Excel文件中存取DataFrame对象
7.2.3数据库中存取DataFrame对象
7.3常用函数与方法
7.3.1用drop()删除指定的行或列
7.3.2用append()添加元素
7.3.3用unique()去除重复元素
7.3.4用Series.map()实现数据替换
7.3.5用apply()将指定函数应用于数据
7.3.6用applymap()将指定函数应用于元素
7.3.7用replace()替换指定元素
7.3.8用align()对齐两个对象的行列
7.3.9用groupby()实现分组
7.3.10用assign()添加新列
7.3.11用where()筛选与替换数据
7.3.12用value_counts()统计元素出现的次数或频率
7.3.13用pivot()按指定列值重新组织数据
7.3.14用pivot_table()创建数据透视图
7.3.15用idxmax()/idxmin()获取最大值/最小值所在的行或列
标签
7.4DataFrame对象的数据清洗与处理
7.4.1用concat()根据行列标签合并数据
7.4.2数据排序
7.4.3记录排名
7.4.4记录抽取
7.4.5重建索引
7.4.6根据新索引填充新位置的值
7.4.7缺失值处理
7.4.8重复值处理
7.4.9数据转换与替代
7.4.10数据计算
7.4.11用merge()根据列内容或行标签合并数据对象
7.4.12combine()基于指定函数合并数据
7.4.13combine_first()用一个对象更新另一个对象中的空值
7.5时间处理
7.5.1Python标准库中的时间处理
7.5.2用dateutil解析字符串格式的日期
7.5.3Pandas中的时间数据处理
7.5.4时间作为行或列的标签
7.5.5根据时间频率重新采样
7.6移动数据与时间索引
7.7统计分析
7.7.1基本统计分析
7.7.2相关分析
7.8Pandas中的绘图方法
7.8.1绘图基本接口plot()
7.8.2其他绘图函数
习题7
第8章机器学习方法概述与数据加载
8.1机器学习概述
8.1.1用有监督学习做预测
8.1.2用无监督学习发现数据之间的关系
8.2scikitlearn的简介与安装
8.2.1scikitlearn的安装
8.2.2scikitlearn中的数据表示
8.2.3scikitlearn中的机器学习基本步骤
8.3加载数据
8.3.1加载scikitlearn中的小数据集
8.3.2下载并加载scikitlearn中的大数据集
8.3.3用scikitlearn构造仿真数据集
8.3.4加载scikitlearn中的其他数据集
8.3.5通过pandasdatareader导入金融数据
8.3.6通过第三方平台API加载数据
8.4划分数据分别用于训练和测试
8.5scikitlearn中机器学习的基本步骤示例
8.5.1有监督分类学习步骤示例
8.5.2有监督回归学习步骤示例
8.5.3无监督聚类学习步骤示例
8.6scikitlearn编程接口的风格
习题8
第9章数据预处理
9.1特征的离散化
9.1.1使用NumPy中的digitize()函数离散化
9.1.2使用Pandas中的cut()函数离散化
9.2识别与处理异常值
9.3特征值的MinMax缩放
9.4特征值的标准化
9.5特征值的稳健缩放
9.6无序分类数据的热编码
9.7有序分类数据编码
9.8每个样本特征值的正则化
习题9
第10章模型评估与轨道
10.1模型评估的基本方法
10.1.1监督学习下的泛化、过拟合与欠拟合
10.1.2模型评估指标
10.1.3交叉验证
10.2轨道的创建与使用
10.2.1创建和使用轨道
10.2.2交叉验证中使用轨道
习题10
第11章有监督学习之分类与回归
11.1分类与回归概述
11.2线性回归
11.2.1普通线性回归
11.2.2岭回归使用l2正则化减小方差
11.2.3Lasso回归使用l1正则化减小特征个数
11.2.4同时使用l1和l2正则化的弹性网络
11.2.5多项式回归
11.3逻辑回归与岭回归实现线性分类
11.3.1单标签二分类
11.3.2单标签多分类
11.3.3通过正则化降低过拟合
11.4支持向量机用于分类和回归
11.4.1支持向量机线性分类
11.4.2支持向量机非线性分类
11.4.3支持向量机回归模型
11.5朴素贝叶斯分类
11.6决策树用于分类和回归
11.6.1决策树用于分类
11.6.2决策树用于回归
习题11
第12章集成学习
12.1投票法集成
12.1.1投票分类器
12.1.2投票回归器
12.2bagging/pasting法集成
12.2.1bagging/pasting分类器
12.2.2bagging/pasting回归器
12.2.3随机森林
12.2.4极端随机树集成
12.3提升法集成
12.3.1AdaBoost
12.3.2梯度提升
12.3.3XGBoost
12.3.4基于直方图的梯度提升
12.4堆叠法集成
12.4.1StackingClassifer集成分类
12.4.2StackingRegressor集成回归
习题12
第13章无监督学习之聚类与降维
13.1用k均值算法基于相似性聚类
13.2层次聚类
13.3基于密度的聚类
13.4聚类性能的评估
13.4.1数据带真实标签的聚类评估
13.4.2数据不带真实标签的聚类评估
13.5无监督的降维
13.5.1主成分分析
13.5.2核主成分分析
习题13
第14章超参数调优与模型选择
14.1搜索超参数来选择模型
14.1.1基于循环语句的网格搜索
14.1.2划分验证集避免过拟合
14.1.3带交叉验证的网格搜索
14.1.4带交叉验证的随机搜索
14.1.5搜索多个不同特征的空间
14.2对轨道中的超参数进行搜索
14.3搜索算法和超参数
习题14
参考文献
|
內容試閱:
|
在大数据和人工智能时代,数据是各企事业单位的重要资产。数据分析和机器学习是寻找数据之间关系、预测趋势的重要手段,是智能决策的重要方法之一。通过数据分析和机器学习知识体系的培养,结合各学科的应用,可以为各学科的人才培养注入新的动力。Python语言入门简单,已经得到广泛的应用,也是当前大数据和人工智能领域最常用的程序设计语言之一。我们在相关课程建设的基础上编写了本书。
本书共14章。第1~4章主要介绍Python语法的基础知识,为后面内容的学习提供基础。第5~7章主要介绍数据分析和可视化方法,同时也为后面的机器学习部分提供基础。第8~14章主要介绍机器学习及数据预处理和模型评估方法。各章节的主要内容如下。
第1章主要阐述Python语言的特点、模块的概念、帮助的使用方法及开发环境的安装与使用方法。
第2章主要介绍Python语言的语法基础,包括标识符、表达式、常用数据类型、分支与循环结构、常用组合类型等。本章部分内容由柳青、张晓黎、郑戟明编写。
第3章主要介绍自定义函数以及类型注解、lambda表达式和函数式编程的常用类与函数。本章部分内容由柳青编写。
第4章主要介绍类与对象的关系、自定义类和类的继承。本章4.1节和4.2节中的部分内容由柳青编写。
第5章主要介绍NumPy数据处理基础。NumPy是学习Matplotlib、Pandas、scikitlearn等内容的基础。
第6章主要介绍Matplotlib数据可视化基础,介绍了多种数据展示方法。
第7章主要介绍Pandas数据处理与分析技术,包括Series和DataFrame两种对象的用法及在数据库和文件中的存取方法、常用函数与方法、数据清洗与处理方法、时间处理、统计分析、Pandas中的绘图方法。这些处理步骤为后续章节中的机器学习提供了数据预处理的技术。
第8章是对机器学习方法的概述,并介绍了一些常用实验数据的获取与加载方法,最后给出了使用scikitlearn实现机器学习的基本步骤。
第9章介绍将数据集用于模型训练前的常用预处理方法,主要包括特征的离散化、标准化、正则化和编码。
第10章主要介绍机器学习模型的常用评估方法和scikitlearn中连接系列操作的轨道使用方法。
第11章主要介绍有监督学习中的经典算法及scikitlearn中对应类的用法。
第12章主要介绍几种常用的集成学习方法及scikitlearn中对应类的用法。
第13章主要介绍基于无监督学习的聚类和降维。
第14章主要介绍如何利用网格搜索进行超参数调优和算法选择。
全书除了第2~4章提到的编写人员外,其他章节均由杨年华编写。
本书案例中使用的实验数据主要来自scikitlearn自带数据集和UCI机器学习库(UCI Machine Learning Repository),另外用到了部分从雅虎财经频道下载的股票交易数据。在此,我们对数据集的分享者表示感谢。
本书案例在Python 3.10、NumPy 1.22.1、Matplotlib 3.5.1、Pandas 1.4、scikitlearn 1.0.2下通过测试。读者也可以在更高版本的配置上运行本书的源代码。
本书提供配套的源代码,并为教师提供课件和教学大纲等资料。这些资料可以在清华大学出版社官方网站下载。本书的第3章和第5~7章配套了微课视频,读者可先扫描封底刮刮卡内的二维码,获得权限后,再扫描正文中的二维码,即可观看视频。
由于作者水平有限,书中难免存在疏漏和不妥之处,敬请批评指正,并将意见反馈给我们。
作者
2022年3月
|
|