第1章 Julia简介 1
1.1 Julia如何提高数据科学水平 2
1.1.1数据科学工作流程 3
1.1.2 Julia被数据科学社区接受的过程 5
1.2 Julia扩展 6
1.2.1包的质量 6
1.2.2找到新的包 6
1.3关于本书 7
第2章 建立数据科学工作环境 9
2.1 Julia IDE 9
2.1.1 Juno 10
2.1.2 IJulia 11
2.1.3其他IDE 12
2.2 Julia扩展包 13
2.2.1找到并选择扩展包 13
2.2.2安装扩展包 14
2.2.3使用扩展包 15
2.2.4破解扩展包 16
2.3 IJulia基础 16
2.3.1文件处理 16
2.3.2在.j1文件中组织代码 19
2.3.3引用代码 20
2.3.4工作目录 20
2.4要使用的数据集 21
2.4.1数据集描述 21
2.4.2下载数据集 23
2.4.3加载数据集 24
2.5在Julia中实现一个简单的机器学习算法 25
2.5.1算法描述 26
2.5.2算法实现 27
2.5.3算法测试 30
2.6将工作区保存到数据文件 32
2.6.1将数据保存为分隔值文件 32
2.6.2将数据保存为Julia数据文件 33
2.6.3将数据保存为文本文件 35
2.7帮助 36
2.8小结 36
2.9思考题 37
第3章 Julia入门 39
3.1数据类型 39
3.2数组 42
3.2.1数组基础 42
3.2.2在数组中引用多个元素 43
3.2.3多维数组 44
3.3字典 44
3.4基本命令与函数 45
3.4.1 print()和println() 46
3.4.2 typemax()和typemin() 46
3.4.3 collect() 47
3.4.4 show() 47
3.4.5 linspace() 48
3.5数学函数 48
3.5.1 round() 48
3.5.2 rand()和randn() 49
3.5.3 sum() 52
3.5.4 mean() 53
3.6数组与字典函数 53
3.6.1 in 53
3.6.2 append!() 54
3.6.3 pop!() 54
3.6.4 push!() 55
3.6.5 splice!() 55
3.6.6 insert!() 56
3.6.7 sort()和sort!() 57
3.6.8 get() 57
3.6.9 keys()和values() 58
3.6.10 length()和size() 58
3.7其他函数 59
3.7.1 time() 59
3.7.2条件语句 59
3.7.3 string() 61
3.7.4 map() 62
3.7.5 versioin() 62
3.8运算符、循环语句与条件语句 62
3.8.1运算符 63
3.8.2循环语句 64
3.8.3 break命令 66
3.9小结 66
3.10思考题 67
第4章 Julia进阶 68
4.1字符串处理 68
4.1.1 split() 69
4.1.2 join() 70
4.1.3正则表达式函数 70
4.2定制函数 74
4.2.1函数结构 74
4.2.2匿名函数 75
4.2.3多分派 75
4.2.4函数示例 76
4.3实现简单算法 77
4.4创建完整解决方案 79
4.5小结 83
4.6思考题 84
第5章 Julia数据科学应用概述 85
5.1数据科学工作流程 85
5.2数据工程 88
5.2.1数据准备 88
5.2.2数据探索 90
5.2.3数据表示 92
5.3数据建模 93
5.3.1数据发现 93
5.3.2数据学习 94
5.4信息萃取 96
5.4.1数据产品创建 96
5.4.2知识、交付物与可视化产品 97
5.5保持开放型思维 99
5.6在实际问题中应用数据科学流程 99
5.6.1数据准备 99
5.6.2数据探索 100
5.6.3数据表示 101
5.6.4数据发现 101
5.6.5数据学习 102
5.6.6数据产品创建 102
5.6.7知识、交付物和可视化产品 103
5.7小结 103
5.8思考题 105
第6章 Julia数据工程 106
6.1数据框 106
6.1.1创建并填充数据框 107
6.1.2数据框基础 108
6.1.3引用数据框中的特定变量 109
6.1.4探索数据框 109
6.1.5筛选数据框 110
6.1.6在数据框变量上应用函数 111
6.1.7使用数据框进行工作 111
6.1.8修改数据框 113
6.1.9对数据框的内容进行排序 113
6.1.10数据框的一些补充建议 114
6.2导入与导出数据 115
6.2.1使用.json数据文件 115
6.2.2保存数据到.json文件 115
6.2.3将数据文件加载到数据框 116
6.2.4保存数据框到数据文件 116
6.3数据清洗 117
6.3.1数值型数据的清洗 117
6.3.2文本型数据的清洗 118
6.4数据格式化与转换 119
6.4.1数值型数据的格式化 119
6.4.2文本数据的格式化 119
6.4.3数据类型的重要性 120
6.5对数值型数据进行转换 120
6.5.1标准化 121
6.5.2离散化(分箱)与二值化 122
6.5.3二值变量转换为连续型变量(仅对于二值分类问题) 123
6.5.4文本数据转换 124
6.5.5大小写标准化 124
6.5.6向量化 124
6.6初步的特征评价 126
6.6.1回归 126
6.6.2分类 126
6.6.3特征评价补充说明 127
6.7小结 128
6.8思考题 129
第7章 探索数据集 130
7.1倾听数据 130
本章要使用的扩展包 131
7.2计算基本统计量和相关性 131
7.2.1变量概要 133
7.2.2变量之间的相关性 134
7.2.3两个变量之间的可比性 136
7.3绘制统计图 136
7.3.1图形语法 137
7.3.2为可视化准备数据 137
7.3.3箱线图 138
7.3.4条形图 138
7.3.5折线图 139
7.3.6散点图 140
7.3.7直方图 143
7.3.8导出统计图到文件 144
7.4假设检验 145
7.4.1检验的基础知识 145
7.4.2错误类型 146
7.4.3灵敏度与特异度 146
7.4.4显著性水平与检验力 146
7.4.5 KRUSKAL-WALLIS检验 147
7.4.6 T-检验 147
7.4.7卡方检验 149
7.5其他检验 151
7.6统计检验附加说明 151
7.7案例研究:探索OnlineNewsPopularity数据集 151
7.7.1变量统计 152
7.7.2可视化 153
7.7.3假设 154
7.7.4奇妙的T-SNE方法 155
7.7.5结论 156
7.8小结 156
7.9思考题 159
第8章 构建数据空间 160
8.1主成分分析 161
8.1.1在Julia中使用PCA 162
8.1.2独立成分分析:主成分分析的最常用替代方法 164
8.2特征评价与选择 165
8.2.1方法论概述 165
8.2.2在Julia中使用余弦相似度进行特征评价与选择 166
8.2.3在Julia中使用DID进行特征评价与选择 168
8.2.4特征评价与选择方法的优缺点 170
8.3其他数据降维技术 170
8.3.1其他降维方法概述 171
8.3.2何时使用高级降维方法 172
8.4小结 172
8.5思考题 173
第9章 数据抽样与结果评价 175
9.1抽样技术 175
9.1.1基本抽样 176
9.1.2分层抽样 176
9.2分类问题的性能指标 177
9.2.1混淆矩阵 177
9.2.2准确度 178
9.2.3精确度与召回度 180
9.2.4 F1指标 181
9.2.5误判成本 181
9.2.6受试者工作特征(ROC)曲线及相关指标 182
9.3回归问题的性能指标 185
9.3.1 MSE及其变种RMSE 186
9.3.2 SSE 187
9.3.3其他指标 187
9.4 K折交叉验证(KFCV) 188
9.4.1在Julia中应用KFCV 189
9.4.2 KFCV小提示 189
9.5小结 190
9.6思考题 192
第10章 无监督式机器学习 193
10.1无监督式学习基础知识 193
10.1.1聚类的类型 194
10.1.2距离的度量 195
10.2使用K-均值算法分组数据 196
10.2.1使用Julia实现K-均值聚类 197
10.2.2对K-均值算法的使用建议 198
10.3密度和DBSCAN算法 199
10.3.1 DBSCAN算法 199
10.3.2在Julia中应用DBSCAN 200
10.4层次聚类 201
10.4.1在Julia中使用层次聚类 201
10.4.2何时使用层次聚类 203
10.5聚类的验证方式 203
10.5.1 Silhouettes 203
10.5.2关于聚类验证的一些建议 204
10.6关于有效进行聚类的一些建议 204
10.6.1处理高维数据 205
10.6.2标准化 205
10.6.3可视化建议 205
10.7小结 206
10.8思考题 207
第11章 监督式机器学习 209
11.1决策树 210
11.1.1在Julia中使用决策树 211
11.1.2关于决策树的一些建议 214
11.2回归树 214
11.2.1在Julia中实现回归树 215
11.2.2关于回归树的一些建议 216
11.3随机森林 216
11.3.1在Julia中使用随机森林进行分类 216
11.3.2在Julia中使用随机森林进行回归 218
11.3.3关于随机森林的一些建议 219
11.4基本神经网络 220
11.4.1在Julia中使用神经网络 221
11.4.2关于神经网络的一些建议 223
11.5极限学习机 224
11.5.1在Julia中使用ELM 224
11.5.2关于ELM的一些建议 226
11.6用于回归分析的统计模型 227
11.6.1在Julia中使用统计回归 227
11.6.2关于统计回归的一些建议 230
11.7其他监督式学习系统 230
11.7.1提升树 230
11.7.2支持向量机 230
11.7.3直推式系统 231
11.7.4深度学习系统 232
11.7.5贝叶斯网络 232
11.8小结 233
11.9本章思考题 235
第12章 图分析 236
12.1图的重要性 237
12.2定制数据集 239
12.3图的统计量 240
12.4环的检测 242
用Julia检测环 243
12.5连通子图 244
12.6团 245
12.7图的最短路径 246
12.8最小生成树 248
12.8.1在Julia中实现MST 249
12.8.2用文件保存和加载图 250
12.9 Julia在图分析中的作用 251
12.10小结 252
12.11思考题 254
第13章 更上一层楼 255
13.1 Julia社区 255
13.1.1与其他Julia用户进行交流 255
13.1.2代码库 256
13.1.3视频文件 256
13.1.4新闻 257
13.2学以致用 257
13.2.1从这些特征开始 258
13.2.2关于这个项目的一些思考 259
13.3在数据科学中使用Julia的最后思考 260
13.3.1不断提高Julia编程水平 260
13.3.2贡献Julia项目 261
13.3.3 Julia在数据科学中的未来 262
附录A 下载安装Julia与IJulia 264
附录B 与Julia相关的一些常用站点 266
附录C 本书所用的扩展包 268
附录D Julia与其他平台的集成 269
D.1 Julia与R的集成 269
D.1.1在R中运行Julia脚本 269
D.1.2在Julia中运行R脚本 270
D.2 Julia与Python的集成 270
D.2.1在Python中运行Julia脚本 270
D.2.2在Julia中运行Python脚本 271
附录E Julia中的并行处理 272
附录F 各章思考题答案 275