系统教授数据科学与Python实战,涵盖线性回归、逻辑回归、决策树、随机森林、神经网
本书内容
随着数据存储、数据处理等大数据技术的快速发展,数据科学在各行各业得到广泛的应用。数据清洗、特征工程、数据可视化、数据挖掘与建模等已成为高校师生和职场人士迎接数字化浪潮、与时俱进提升专业技能的必修课程。本书将“Python课程学习”与“数据科学应用”有机结合,为数字化人才的培养助力。
全书共分13章,内容包括:第1章数据科学应用概述;第2章Python的入门基础知识;第3章数据清洗;第4~6章特征工程介绍,包括特征选择、特征处理和特征提取;第7章数据可视化应用;第8~13章介绍6种数据挖掘与建模的方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。
《Python数据科学应用从入门到精通》既适合作为经济学、管理学、统计学、金融学、社会学、医学、电子商务等相关专业的学生学习Python数据科学应用的专业教材或参考书,也适合作为企事业单位数字化人才培养的教科书与工具书。此外,还可以作为职场人士提升数据处理与分析挖掘能力,提高工作效能和绩效水平的自学Python数据科学应用的工具书。
本书作者
张甜,山东大学金融学博士,现就职于山东管理学院,教授统计学、计量经济学等课程,硕、博士期间分别师从山东大学陈强教授、曹廷求教授,在《财贸经济》《经济评论》等重要期刊发文多篇,参与“地方金融运行动态监测及系统性风险预警研究”等多项重大项目,著有《Python数据科学应用从入门到精通》《Stata统计分析从入门到精通》《SPSS统计分析入门与应用精解(视频教学版)》等10余本畅销数据分析教材。
杨维忠,山东大学西方经济学硕士,CPA,目前就职于某全国性股份制商业银行总行,担任总行数据分析与机器学习内训师。精通Python、Stata、SPSS、Eviews、Excel等多种统计分析软件,具有深厚的学术研究功底、丰富的实践操作经历和授课经验,尤其擅长将各种统计分析方法与机器学习算法应用到工作中,著有多本畅销数据分析教材,深受读者欢迎。
编辑推荐
《Python数据科学应用从入门到精通》是张甜博士和数据分析领域专家杨维忠合力打造的精心之作,现在已成为编辑推荐。本书全面介绍了Python数据分析的基本概念和技能,包括数据清洗、数据可视化、统计分析、机器学习等。重要的是,本书注重实践应用,提供了大量的实例和案例,帮助读者更好地理解和掌握所学知识。无论是经济学、管理学、统计学、金融学、社会学、医学还是电子商务等专业学生,都可以将其作为学习Python数据分析的专业教材和参考书。而对于企业和事业单位来说,本书也是数字化人才培养的教科书和工具书。同时,职场人士也可以利用本书自学,掌握Python数据分析,提升数据挖掘、分析和可视化建模能力,从而提高工作效率和改善绩效水平。
本书目录
第1章 数据科学应用概述 1
1.1 什么是数据清洗、特征工程、数据可视化、数据挖掘与建模 1
1.1.1 数据清洗的概念 1
1.1.2 特征工程的概念 2
1.1.3 数据可视化的概念 4
1.1.4 数据挖掘与建模的概念 4
1.2 为什么要开展数据清洗、特征工程、数据可视化和数据挖掘与建模 4
1.2.1 数据清洗、特征工程的重要性 4
1.2.2 数据可视化的重要性 5
1.2.3 数据挖掘与建模的重要性 5
1.3 为什么要将Python作为实现工具 6
1.4 数据清洗、特征工程、数据可视化和数据挖掘与建模的主要内容 6
1.4.1 数据清洗的主要内容 6
1.4.2 特征工程的主要内容 7
1.4.3 数据可视化的主要内容 7
1.4.4 数据挖掘与建模的主要内容 8
1.5 数据清洗、特征工程、数据可视化和数据挖掘与建模的应用场景 8
1.5.1 数据清洗、特征工程的应用场景 8
1.5.2 数据可视化的应用场景 9
1.5.3 数据挖掘与建模的应用场景 10
1.6 数据清洗、特征工程和数据可视化的注意事项 14
1.6.1 数据清洗、特征工程的注意事项 14
1.6.2 数据可视化的注意事项 14
1.7 数据挖掘与建模的注意事项 15
1.8 习题 19
第2章 Python入门基础 21
2.1 Python概述 21
2.2 Anaconda平台的下载与安装 22
2.2.1 Anaconda平台的下载 22
2.2.2 Anaconda平台的安装 24
2.2.3 Anaconda Prompt (Anaconda3) 26
2.2.4 Spyder (Anaconda3)的介绍及偏好设置 26
2.2.5 Spyder (Anaconda3)窗口介绍 29
2.3 Python的注释 34
2.4 基本输出函数—print()函数 35
2.5 基本输入函数—input()函数 36
2.6 Python的保留字与标识符 37
2.6.1 Python中的保留字 37
2.6.2 Python的标识符 37
2.7 Python的变量 38
2.8 Python的基本数据类型 39
2.9 Python的数据运算符 43
2.10 Python序列的概念及通用操作 45
2.10.1 索引 46
2.10.2 切片 46
2.10.3 相加 47
2.10.4 相乘 48
2.10.5 元素检查 48
2.10.6 与序列相关的内置函数 49
2.11 Python列表 50
2.11.1 列表的基本操作 50
2.11.2 列表元素的基本操作 52
2.12 Python元组 53
2.12.1 元组的基本操作 53
2.12.2 元组元素的基本操作 55
2.13 Python字典 55
2.13.1 字典的基本操作 56
2.13.2 字典元素的基本操作 58
2.14 Python集合 60
2.15 Python字符串 61
2.16 习题 65
第3章 数据清洗 67
3.1 Python数据清洗基础 67
3.1.1 Python函数与模块 67
3.1.2 numpy模块数组 74
3.1.3 pandas模块序列 79
3.1.4 pandas模块数据框 81
3.1.5 Python流程控制语句 86
3.2 Python数据读取、合并、写入 90
3.2.1 读取、合并、写入文本文件(CSV或者TXT) 90
3.2.2 读取、合并、写入Excel数据文件 98
3.2.3 读取、合并、写入Stata数据文件 99
3.2.4 读取、合并SPSS数据文件 100
3.3 Python数据检索 102
3.4 Python数据行列处理 103
3.4.1 删除变量列、样本行 104
3.4.2 更改变量的列名称、调整变量列顺序 104
3.4.3 改变列的数据格式 106
3.4.4 多列转换 106
3.4.5 数据百分比格式转换 107
3.5 Python数据缺失值处理 107
3.5.1 查看数据集中的缺失值 108
3.5.2 填充数据集中的缺失值 109
3.5.3 删除数据集中的缺失值 113
3.6 Python数据重复值处理 115
3.6.1 查看数据集中的重复值 115
3.6.2 删除数据集中的重复值 117
3.7 Python数据异常值处理 118
3.7.1 运用3δ准则检测异常值 118
3.7.2 绘制箱图检测异常值 119
3.7.3 删除异常值 121
3.7.4 3δ准则替换异常值 122
3.7.5 1%/99%分位数替换异常值 123
3.8 Python数据透视表、描述性分析和交叉表分析 124
3.8.1 数据透视表 124
3.8.2 描述性分析 129
3.8.3 交叉表分析 132
3.9 习题 136
第4章 特征选择 138
4.1 特征选择的概念、原则及方法 138
4.1.1 特征选择的概念 138
4.1.2 特征选择的原则 139
4.1.3 特征选择的方法 139
4.2 过滤法—去掉低方差的特征 141
4.3 过滤法—单变量特征选择 144
4.3.1 卡方检验 144
4.3.2 相关性分析 146
4.3.3 方差分析(F检验) 149
4.3.4 互信息 150
4.4 包裹法—递归特征消除 151
4.5 嵌入法 152
4.5.1 随机森林算法选择特征变量 153
4.5.2 提升法算法选择特征变量 155
4.5.3 Logistic回归算法选择特征变量 156
4.5.4 线性支持向量机算法选择特征变量 158
4.6 习题 159
第5章 特征处理 161
5.1 特征归一化、特征标准化、样本归一化 161
5.1.1 特征归一化 162
5.1.2 特征标准化 164
5.1.3 样本归一化 165
5.2 特征等宽分箱和等频分箱 168
5.3 特征决策树分箱 170
5.3.1 信息熵 170
5.3.2 信息增益 170
5.3.3 增益比率 171
5.3.4 基尼指数 171
5.3.5 变量重要性 172
5.3.6 特征决策树分箱的Python实现 172
5.4 特征卡方分箱 174
5.5 WOE(证据权重)和IV(信息价值) 175
5.5.1 WOE和IV的概念 175
5.5.2 WOE的作用 176
5.5.3 WOE编码注意事项 177
5.5.4 IV的作用 177
5.5.5 为什么使用IV而不是WOE来判断特征变量的预测能力 178
5.6 WOE、IV的Python实现 179
5.6.1 载入分析所需要的模块和函数 179
5.6.2 数据读取及观察 179
5.6.3 描述性统计分析 181
5.6.4 特征变量筛选 182
5.6.5 划分训练样本和测试样本 183
5.6.6 分箱操作 184
5.6.7 画分箱图 185
5.6.8 调整分箱 190
5.6.9 将训练样本和测试样本进行WOE编码 192
5.6.10 构建Logistic模型进行预测 193
5.6.11 模型预测及评价 194
5.6.12 绘制ROC曲线,计算AUC值 196
5.7 习题 198
第 6 章 特征提取 199
6.1 无监督降维技术—主成分分析 199
6.1.1 主成分分析的基本原理 199
6.1.2 主成分分析的数学概念 200
6.1.3 主成分的特征值 201
6.1.4 样本的主成分得分 201
6.1.5 主成分载荷 202
6.1.6 主成分分析的Python实现 203
6.2 有监督降维技术—线性判别分析 210
6.2.1 线性判别分析的基本原理 210
6.2.2 线性判别分析的算法过程 212
6.2.3 线性判别分析的Python实现 212
6.3 习题 222
第 7 章 数据可视化 224
7.1 四象限图 224
7.1.1 四象限图简介 224
7.1.2 案例数据介绍 225
7.1.3 Python代码示例 227
7.2 热力图 230
7.2.1 热力图简介 230
7.2.2 案例数据介绍 231
7.2.3 Python代码示例 231
7.3 直方图 234
7.3.1 直方图简介 234
7.3.2 案例数据介绍 236
7.3.3 Python代码示例 236
7.4 条形图、核密度图和正态QQ图 242
7.4.1 条形图、核密度图和正态QQ图简介 242
7.4.2 案例数据介绍 243
7.4.3 Python代码示例 243
7.5 散点图 246
7.5.1 散点图简介 246
7.5.2 案例数据介绍 247
7.5.3 Python代码示例 249
7.6 线图(含时间序列趋势图) 255
7.6.1 线图(含时间序列趋势图)简介 255
7.6.2 案例数据介绍 257
7.6.3 Python代码示例 258
7.7 双纵轴线图 260
7.7.1 双纵轴线图简介 260
7.7.2 案例数据介绍 260
7.7.3 Python代码示例 260
7.8 回归拟合图 262
7.8.1 回归拟合图简介 262
7.8.2 案例数据介绍 263
7.8.3 Python代码示例 263
7.9 箱图 265
7.9.1 箱图简介 265
7.9.2 案例数据介绍 267
7.9.3 Python代码示例 267
7.10 小提琴图 271
7.10.1 小提琴图简介 271
7.10.2 案例数据介绍 273
7.10.3 Python代码示例 274
7.11 联合分布图 276
7.11.1 联合分布图简介 276
7.11.2 案例数据介绍 277
7.11.3 Python代码示例 277
7.12 雷达图 281
7.12.1 雷达图简介 281
7.12.2 案例数据介绍 281
7.12.3 Python代码示例 282
7.13 饼图 287
7.13.1 饼图简介 287
7.13.2 案例数据介绍 288
7.13.3 Python代码示例 289
7.14 习题 291
第8章 数据挖掘与建模1——线性回归 299
8.1 基本思想 299
8.1.1 线性回归算法的概念及数学解释 299
8.1.2 线性回归算法的优点 301
8.1.3 线性回归算法的缺点 302
8.2 应用案例 302
8.2.1 数据挖掘与建模思路 302
8.2.2 数据文件介绍 303
8.2.3 导入分析所需要的模块和函数 303
8.2.4 数据读取及观察 304
8.3 使用smf进行线性回归 305
8.3.1 使用smf进行线性回归 306
8.3.2 多重共线性检验 310
8.3.3 解决多重共线性问题 311
8.3.4 绘制拟合回归平面 312
8.4 使用sklearn进行线性回归 313
8.4.1 使用验证集法进行模型拟合 315
8.4.2 更换随机数种子,使用验证集法进行模型拟合 315
8.4.3 使用10折交叉验证法进行模型拟合 316
8.4.4 使用10折重复10次交叉验证法进行模型拟合 318
8.4.5 使用留一交叉验证法进行模型拟合 318
8.5 习题 319
第9章 数据挖掘与建模2——Logistic回归 320
9.1 基本思想 320
9.1.1 Logistic回归算法的概念及数学解释 320
9.1.2 “分类问题监督式学习”的性能度量 321
9.2 应用案例 327
9.2.1 数据文件介绍 327
9.2.2 导入分析所需要的模块和函数 327
9.2.3 数据读取及观察 328
9.3 描述性分析 330
9.4 数据处理 332
9.4.1 区分分类特征和连续特征并进行处理 332
9.4.2 将样本全集分割为训练样本和测试样本 333
9.5 建立二元Logistic回归算法模型 334
9.5.1 使用statsmodels建立二元Logistic回归算法模型 334
9.5.2 使用sklearn建立二元Logistic回归算法模型 339
9.5.3 特征变量重要性水平分析 342
9.5.4 绘制ROC曲线,计算AUC值 345
9.5.5 计算科恩kappa得分 346
9.6 习题 347
第10章 数据挖掘与建模3——决策树 349
10.1 基本思想 349
10.1.1 决策树算法的概念与原理 349
10.1.2 决策树的剪枝 350
10.1.3 包含剪枝决策树的损失函数 351
10.2 数据准备 352
10.2.1 案例数据说明 352
10.2.2 导入分析所需要的模块和函数 353
10.3 分类问题决策树算法示例 354
10.3.1 变量设置及数据处理 354
10.3.2 未考虑成本-复杂度剪枝的决策树分类算法模型 355
10.3.3 考虑成本-复杂度剪枝的决策树分类算法模型 358
10.3.4 绘制图形观察叶节点总不纯度随alpha值的变化情况 359
10.3.5 绘制图形观察节点数和树的深度随alpha值的变化情况 359
10.3.6 绘制图形观察训练样本和测试样本的预测准确率随alpha值的变化情况 360
10.3.7 通过10折交叉验证法寻求最优alpha值 361
10.3.8 决策树特征变量重要性水平分析 362
10.3.9 绘制ROC曲线 363
10.3.10 运用两个特征变量绘制决策树算法决策边界图 363
10.4 回归问题决策树算法示例 365
10.4.1 变量设置及数据处理 365
10.4.2 未考虑成本-复杂度剪枝的决策树回归算法模型 366
10.4.3 考虑成本-复杂度剪枝的决策树回归算法模型 367
10.4.4 绘制图形观察叶节点总均方误差随alpha值的变化情况 368
10.4.5 绘制图形观察节点数和树的深度随alpha值的变化情况 368
10.4.6 绘制图形观察训练样本和测试样本的拟合优度随alpha值的变化情况 369
10.4.7 通过10折交叉验证法寻求最优alpha值并开展特征变量重要性水平分析 370
10.4.8 最优模型拟合效果图形展示 372
10.4.9 构建线性回归算法模型进行对比 373
10.5 习题 373
第11章 数据挖掘与建模4——随机森林 374
11.1 随机森林算法的基本原理 374
11.1.1 模型融合的基本思想 374
11.1.2 集成学习的概念与分类 378
11.1.3 装袋法的概念与原理 379
11.1.4 随机森林算法的概念与原理 380
11.1.5 随机森林算法特征变量重要性度量 380
11.1.6 部分依赖图与个体条件期望图 380
11.2 数据准备 381
11.2.1 案例数据说明 382
11.2.2 导入分析所需要的模块和函数 382
11.3 分类问题随机森林算法示例 382
11.3.1 变量设置及数据处理 383
11.3.2 二元Logistic回归和单棵分类决策树算法 383
11.3.3 装袋法分类算法 384
11.3.4 随机森林分类算法 385
11.3.5 寻求max_features最优参数 385
11.3.6 寻求n_estimators最优参数 386
11.3.7 随机森林特征变量重要性水平分析 388
11.3.8 绘制部分依赖图与个体条件期望图 389
11.3.9 模型性能评价 390
11.3.10 绘制ROC曲线 392
11.3.11 运用两个特征变量绘制随机森林算法决策边界图 392
11.4 回归问题随机森林算法示例 393
11.4.1 变量设置及数据处理 393
11.4.2 线性回归、单棵回归决策树算法 394
11.4.3 装袋法回归算法 395
11.4.4 随机森林回归算法 395
11.4.5 寻求max_features最优参数 395
11.4.6 寻求n_estimators最优参数 396
11.4.7 随机森林特征变量重要性水平分析 399
11.4.8 绘制部分依赖图与个体条件期望图 400
11.4.9 最优模型拟合效果图形展示 401
11.5 习题 402
第12章 数据挖掘与建模5——神经网络 404
12.1 神经网络算法的基本原理 404
12.1.1 神经网络算法的基本思想 404
12.1.2 感知机 406
12.1.3 多层感知机 410
12.1.4 神经元激活函数 411
12.1.5 误差反向传播算法(BP算法) 416
12.1.6 万能近似定理及多隐藏层优势 424
12.1.7 BP算法过拟合问题的解决 424
12.2 数据准备 426
12.2.1 案例数据说明 426
12.2.2 导入分析所需要的模块和函数 428
12.3 回归神经网络算法示例 428
12.3.1 变量设置及数据处理 428
12.3.2 单隐藏层的多层感知机算法 429
12.3.3 神经网络特征变量重要性水平分析 431
12.3.4 绘制部分依赖图与个体条件期望图 432
12.3.5 拟合优度随神经元个数变化的可视化展示 433
12.3.6 通过K折交叉验证寻求单隐藏层最优神经元个数 434
12.3.7 双隐藏层的多层感知机算法 436
12.3.8 最优模型拟合效果图形展示 437
12.4 二分类神经网络算法示例 438
12.4.1 变量设置及数据处理 438
12.4.2 单隐藏层二分类问题神经网络算法 439
12.4.3 双隐藏层二分类问题神经网络算法 440
12.4.4 早停策略减少过拟合问题 440
12.4.5 正则化(权重衰减)策略减少过拟合问题 441
12.4.6 模型性能评价 441
12.4.7 绘制ROC曲线 443
12.4.8 运用两个特征变量绘制二分类神经网络算法决策边界图 443
12.5 习题 444
第13章 数据挖掘与建模6据挖掘与建分析 446
13.1 RFM分析的基本原理 446
13.1.1 RFM分析的基本思想 446
13.1.2 RFM分类组合与客户类型对应情况 447
13.1.3 不同类型客户的特点及市场营销策略 448
13.2 数据准备 449
13.2.1 案例数据说明 450
13.2.2 导入分析所需要的模块和函数 450
13.3 RFM分析示例 450
13.3.1 数据读取及观察 450
13.3.2 计算R、F、M分值 453
13.3.3 生成RFM数据集 455
13.3.4 不同类别客户数量分析 459
13.3.5 不同类别客户消费金额分析 462
13.4 习题 465
Python数据科学应用从入门到精通