数据预处理是数据可视化、数据分析和机器学习的第一步,它将为分析和预测模型准备数据以帮助分析师获得最佳见解。分析师在执行数据分析、数据可视化和机器学习项目时,大约90%的时间都花在数据预处理上。
本书将从多个角度为读者提供最佳的数据预处理技术。读者将了解数据预处理的不同技术和分析过程(包括数据收集、数据清洗、数据集成、数据归约和数据转换等),并掌握如何使用开源Python编程环境来实现它们。
第1篇 技 术 基 础
第1章 NumPy和Pandas简介 3
1.1 技术要求 3
1.2 Jupyter Notebook概述 4
1.3 通过计算机编程进行数据分析的实质含义 6
1.4 NumPy基本函数概述 6
1.4.1 np.arange()函数 8
1.4.2 np.zeros()和np.ones()函数 8
1.4.3 示例—使用占位符来容纳分析 9
1.4.4 np.linspace()函数 10
1.4.5 示例—使用np.linspace()求解 11
1.5 Pandas概述 12
1.6 Pandas数据访问 15
1.6.1 Pandas DataFrame访问 15
1.6.2 访问DataFrame行 15
1.6.3 访问DataFrame列 16
1.6.4 访问DataFrame值 17
1.6.5 访问Pandas Series 17
1.7 切片 18
1.7.1 对NumPy数组进行切片 18
1.7.2 对Pandas DataFrame进行切片 20
1.7.3 切片的实用示例 20
1.8 用于过滤DataFrame的布尔掩码 22
1.8.1 使用布尔掩码的分析示例1 23
1.8.2 使用布尔掩码的分析示例2 24
1.9 用于探索DataFrame的Pandas函数 24
1.9.1 了解数据集的结构 25
1.9.2 使用.shape属性 25
1.9.3 使用.columns属性 25
1.9.4 使用.info()函数 26
1.9.5 了解数据集的值 26
1.9.6 使用.describe()函数 26
1.9.7 用于可视化数值列的直方图和箱线图 27
1.9.8 使用.unique()函数 28
1.9.9 使用.value_counts()函数 28
1.9.10 用于可视化数值列的条形图 29
1.10 应用Pandas函数 29
1.10.1 将函数应用于Series 30
1.10.2 应用函数—分析示例1 30
1.10.3 应用Lambda函数 31
1.10.4 对DataFrame应用函数 31
1.10.5 应用函数—分析示例2 32
1.10.6 Pandas groupby函数 33
1.10.7 使用groupby的分析示例 34
1.10.8 Pandas多级索引 35
1.10.9 使用.unstack()函数 36
1.10.10 使用.stack()函数 38
1.10.11 多级访问 39
1.10.12 Pandas .pivot()和.melt()函数 40
1.11 小结 43
1.12 练习 43
第2章 Matplotlib简介 47
2.1 技术要求 47
2.2 在Matplotlib中绘图 48
2.2.1 使用直方图或箱线图可视化数值特征 48
2.2.2 使用折线图观察数据趋势 49
2.2.3 使用散点图关联两个数值属性 50
2.3 修改绘图的可视化效果 51
2.3.1 将标题添加到可视化对象并将标签添加到轴 52
2.3.2 添加图例 53
2.3.3 修改刻度 53
2.3.4 修改标记 55
2.4 绘制子图 56
2.5 调整并保存结果 58
2.5.1 调整大小 58
2.5.2 保存 58
2.6 Matplotilb辅助进行数据预处理的示例 58
2.7 小结 59
2.8 练习 60
第3章 数据 61
3.1 技术要求 61
3.2 数据的定义 61
3.2.1 HLCU的意义 62
3.2.2 DIKW金字塔 63
3.2.3 机器学习和人工智能的DIKW更新 64
3.2.4 数据分析的DIKW更新 65
3.2.5 用于数据分析的数据预处理与用于机器学习的数据预处理 67
3.2.6 大数据的3个V 67
3.2.7 3个V对数据预处理的重要性 68
3.3 最通用的数据结构—表 68
3.3.1 数据对象 69
3.3.2 强调数据对象的重要性 69
3.3.3 数据特性 70
3.4 数据值的类型 70
3.4.1 从分析的角度看数据类型 70
3.4.2 标称特性 71
3.4.3 序数特性 71
3.4.4 区间标度特性 72
3.4.5 比率标度特性 74
3.4.6 二元特性 74
3.4.7 理解特性类型的重要性 74
3.4.8 从编程的角度看数据类型 75
3.5 信息与模式 75
3.5.1 理解“信息”这个词的日常用法 76
3.5.2 “信息”一词的统计用途 76
3.5.3 分类特性的统计信息 77
3.5.4 数字特性的统计信息 77
3.5.5 数据冗余—呈现相似信息的特性 78
3.5.6 通过相关系数调查数据冗余情况 78
3.5.7 “模式”一词的统计意义 79
3.5.8 查找和使用模式的示例 79
3.6 小结 82
3.7 练习 82
3.8 参考资料 85
第4章 数据库 87
4.1 技术要求 87
4.2 数据库的定义 87
4.2.1 从数据库到数据集 87
4.2.2 理解数据库和数据集之间的区别 88
4.3 数据库类型 89
4.3.1 数据库的差异化元素 90
4.3.2 数据结构化水平 90
4.3.3 存储位置 92
4.3.4 权限 92
4.3.5 关系数据库 92
4.3.6 非结构化数据库 92
4.3.7 一个需要结合结构化和非结构化数据库的实际示例 93
4.3.8 分布式数据库 93
4.3.9 区块链 94
4.4 连接到数据库并从中提取数据 94
4.4.1 直接连接 95
4.4.2 网页连接 96
4.4.3 API连接 97
4.4.4 使用API连接和提取数据的示例 97
4.4.5 后续处理 99
4.4.6 综合操作 100
4.4.7 请求连接 101
4.4.8 公开共享 101
4.5 小结 101
4.6 练习 102
第2篇 分 析 目 标
第5章 数据可视化 107
5.1 技术要求 107
5.2 总结数据的总体 107
5.2.1 总结数值特性的示例 108
5.2.2 总结分类特性的示例 109
5.3 比较数据的总体 111
5.3.1 使用箱线图比较总体的示例 111
5.3.2 使用直方图比较总体的示例 112
5.3.3 使用条形图比较总体的示例 114
5.3.4 解决问题的第一种方法 114
5.3.5 解决问题的第二种方法 115
5.3.6 解决问题的第三种方法 115
5.3.7 解决问题的第四种方法 116
5.3.8 解决问题的第五种方法 117
5.3.9 解决问题的第六种方法 117
5.4 研究两个特性之间的关系 118
5.4.1 可视化两个数值特性之间的关系 118
5.4.2 使用散点图研究数值特性之间关系的示例 118
5.4.3 可视化两个分类特性之间的关系 120
5.4.4 使用列联表检查两个二元分类特性之间关系的示例 121
5.4.5 使用列联表检查两个非二元分类特性之间关系的示例 122
5.4.6 可视化数值特性和分类特性之间的关系 123
5.4.7 检查分类特性和数值特性之间关系的示例 123
5.4.8 检查分类特性和数值特性之间关系的另一个示例 125
5.5 添加可视化维度 127
5.5.1 五维散点图示例 127
5.5.2 第四个维度 130
5.5.3 第五个维度 131
5.6 显示和比较趋势 133
5.6.1 时间序列数据和折线图 133
5.6.2 可视化和比较趋势的示例 134
5.7 小结 136
5.8 练习 137
第6章 预测 141
6.1 技术要求 141
6.2 预测模型 141
6.2.1 Forecast 142
6.2.2 使用Forecast来预测未来的示例 142
6.2.3 回归分析 143
6.2.4 设计回归分析以预测未来值的示例 144
6.3 线性回归 145
6.3.1 应用线性回归方法的示例 145
6.3.2 使用经过训练的回归公式进行预测 148
6.4 MLP 150
6.4.1 MLP的工作原理 151
6.4.2 反向传播 152
6.4.3 应用MLP进行回归分析的示例 152
6.4.4 MLP每次运行都会获得不同的预测结果 153
6.4.5 MLP算法无法收敛 153
6.5 小结 154
6.6 练习 154
第7章 分类 157
7.1 技术要求 157
7.2 分类模型 157
7.2.1 分类模型的设计示例 158
7.2.2 分类算法 159
7.3 KNN 159
7.3.1 使用KNN进行分类的示例 159
7.3.2 数据归一化 161
7.3.3 应用KNN算法 163
7.4 决策树 165
7.4.1 使用决策树进行分类的示例 165
7.4.2 预测结果比较 166
7.5 小结 167
7.6 练习 167
第8章 聚类分析 171
8.1 技术要求 171
8.2 聚类模型 171
8.2.1 使用二维数据集的聚类示例 172
8.2.2 使用三维数据集的聚类示例 175
8.3 k-means算法 176
8.3.1 使用k-means对二维数据集进行聚类 178
8.3.2 使用k-means对多于二维的数据集进行聚类 182
8.3.3 质心分析 183
8.4 小结 185
8.5 练习 185
第3篇 预 处 理
第9章 数据清洗1级—清洗表 189
9.1 技术要求 189
9.2 数据清洗的工具和目标 189
9.2.1 数据分析目标 190
9.2.2 数据分析工具 190
9.3 数据清洗级别 190
9.3.1 数据清洗1级—清洗表 191
9.3.2 数据清洗2级—重组和重制表 191
9.3.3 数据清洗3级—评估和纠正值 191
9.3.4 将分析的目标和工具映射到数据清洗级别 191
9.4 数据清洗1级—清洗表的示例 193
9.4.1 示例1—不明智的数据收集 193
9.4.2 示例2—重新索引 196
9.4.3 示例3—直观但很长的列标题 198
9.5 小结 200
9.6 练习 200
第10章 数据清洗2级—解包、重组和重制表 203
10.1 技术要求 203
10.2 示例1—解包数据并重新构建表 203
10.2.1 解包FileName 204
10.2.2 解包Content 207
10.2.3 重制一个新表以进行可视化 208
10.2.4 可视化绘图 211
10.3 示例2—重组表 211
10.4 示例3—执行1级和2级数据清洗 214
10.4.1 执行1级清洗 216
10.4.2 执行2级清洗 217
10.4.3 填充DA 218
10.4.4 填充IA1 219
10.4.5 填充IA2 220
10.4.6 填充IA3 222
10.4.7 进行分析—使用线性回归创建预测模型 223
10.5 小结 224
10.6 练习 224
第11章 数据清洗3级—处理缺失值、异常值和误差 227
11.1 技术要求 227
11.2 缺失值 228
11.2.1 检测缺失值 229
11.2.2 检测缺失值的示例 229
11.2.3 缺失值的原因 231
11.2.4 缺失值的类型 232
11.2.5 缺失值的诊断 232
11.2.6 诊断NO2_LOCATION_A中的缺失值 233
11.2.7 根据温度诊断缺失值 233
11.2.8 根据所有数值特性诊断缺失值 236
11.2.9 根据周工作日诊断缺失值 237
11.2.10 根据所有分类特性诊断缺失值 240
11.2.11 诊断NO2_LOCATION_B中的缺失值 241
11.2.12 诊断NO2_LOCATION_C中的缺失值 244
11.3 处理缺失值 246
11.3.1 第一种方法—保持缺失值不变 246
11.3.2 第二种方法—删除具有缺失值的数据对象 247
11.3.3 第三种方法—删除具有缺失值的特性 247
11.3.4 第四种方法—估计和填补缺失值 248
11.3.5 选择正确的方法处理缺失值 248
11.3.6 处理缺失值示例1 250
11.3.7 处理缺失值示例2 251
11.3.8 处理缺失值示例3 252
11.3.9 处理缺失值示例4 253
11.3.10 处理缺失值示例5 254
11.4 异常值 258
11.4.1 检测异常值 258
11.4.2 单变量异常值检测 258
11.4.3 单个数值特性异常值检测示例 259
11.4.4 单个分类特性异常值检测示例 262
11.4.5 双变量异常值检测 262
11.4.6 跨越两个数值特性检测异常值的示例 262
11.4.7 跨越两个分类特性检测异常值的示例 263
11.4.8 跨越数值-分类两个特性检测异常值的示例 264
11.4.9 多变量异常值检测 266
11.4.10 使用聚类分析跨越4个特性检测异常值的示例 266
11.4.11 时间序列异常值检测 267
11.5 处理异常值 268
11.5.1 第一种方法—保持原样 268
11.5.2 第二种方法—替换为上限或下限 269
11.5.3 第三种方法—执行对数变换 269
11.5.4 第四种方法—删除具有异常值的数据对象 270
11.5.5 选择处理异常值的恰当方法 270
11.5.6 处理异常值示例1 270
11.5.7 处理异常值示例2 272
11.5.8 处理异常值示例3 273
11.5.9 处理异常值示例4 281
11.5.10 处理异常值示例5 282
11.6 误差 286
11.6.1 误差类型 286
11.6.2 处理误差 287
11.6.3 检测系统误差 287
11.6.4 系统误差和正确异常值的示例 287
11.7 小结 291
11.8 练习 291
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录