本书介绍如何使用Java创建并实现机器学习算法,既有基础知识,又提供实战案例。主要内容包括:机器学习基本概念、原理,Weka、Mahout、Spark等常见机器学习库的用法,各类机器学习常见任务,包括分类、预测预报、购物篮分析、检测异常、行为识别、图像识别以及文本分析。后还提供了相关Web资源、各种技术研讨会议以及机器学习挑战赛等进阶所需内容。 本书适合机器学习入门者,尤其是想使用Java机器学习库进行数据分析的读者。
快速了解用Java创建并实现机器学习 涵盖Mahout、Weka、Spark等常见库的功能和用法 介绍各种常见任务的机器学习应用,如基于数据库的预测预报、购物篮分析、图像识别、行为识别、文本分析等
博士,人工智能与机器学习专家,现任Evolven公司(经验丰富的IT运营分析公司,致力于配置管理业务)首席数据科学家,主攻机器学习、预测分析、模式挖掘与异常检测,旨在把数据转化为人类可理解的信息与可供实用的知识。 更多信息请访问bostjankaluza.net。
目 录
第1章 机器学习应用快速入门 1
1.1 机器学习与数据科学 1
1.1.1 机器学习能够解决的问题 2
1.1.2 机器学习应用流程 3
1.2 数据与问题定义 4
1.3 数据收集 5
1.3.1 发现或观察数据 5
1.3.2 生成数据 6
1.3.3 采样陷阱 7
1.4 数据预处理 7
1.4.1 数据清洗 8
1.4.2 填充缺失值 8
1.4.3 剔除异常值 8
1.4.4 数据转换 9
1.4.5 数据归约 10
1.5 无监督学习 10
1.5.1 查找相似项目 10
1.5.2 聚类 12
1.6 监督学习 13
1.6.1 分类 14
1.6.2 回归 16
1.7 泛化与评估 18
1.8 小结 21
第2章 面向机器学习的Java库与
平台 22
2.1 Java环境 22
2.2 机器学习库 23
2.2.1 Weka 23
2.2.2 Java机器学习 25
2.2.3 Apache Mahout 26
2.2.4 Apache Spark 27
2.2.5 Deeplearning4j 28
2.2.6 MALLET 29
2.2.7 比较各个库 30
2.3 创建机器学习应用 31
2.4 处理大数据 31
2.5 小结 33
第3章 基本算法——分类、回归、
聚类 34
3.1 开始之前 34
3.2 分类 35
3.2.1 数据 35
3.2.2 加载数据 36
3.2.3 特征选择 37
3.2.4 学习算法 38
3.2.5 对新数据分类 40
3.2.6 评估与预测误差度量 41
3.2.7 混淆矩阵 41
3.2.8 选择分类算法 42
3.3 回归 43
3.3.1 加载数据 43
3.3.2 分析属性 44
3.3.3 创建与评估回归模型 45
3.3.4 避免常见回归问题的小技巧 48
3.4 聚类 49
3.4.1 聚类算法 49
3.4.2 评估 50
3.5 小结 51
第4章 利用集成方法预测客户关系 52
4.1 客户关系数据库 52
4.1.1 挑战 53
4.1.2 数据集 53
4.1.3 评估 54
4.2 最基本的朴素贝叶斯分类器基准 55
4.2.1 获取数据 55
4.2.2 加载数据 56
4.3 基准模型 58
4.3.1 评估模型 58
4.3.2 实现朴素贝叶斯基准线 59
4.4 使用集成方法进行高级建模 60
4.4.1 开始之前 60
4.4.2 数据预处理 61
4.4.3 属性选择 62
4.4.4 模型选择 63
4.4.5 性能评估 66
4.5 小结 66
第5章 关联分析 67
5.1 购物篮分析 67
5.2 关联规则学习 69
5.2.1 基本概念 69
5.2.2 Apriori算法 71
5.2.3 FP-增长算法 71
5.2.4 超市数据集 72
5.3 发现模式 73
5.3.1 Apriori算法 73
5.3.2 FP-增长算法 74
5.4 在其他领域中的应用 75
5.4.1 医疗诊断 75
5.4.2 蛋白质序列 75
5.4.3 人口普查数据 76
5.4.4 客户关系管理 76
5.4.5 IT运营分析 76
5.5 小结 77
第6章 使用Apache Mahout制作
推荐引擎 78
6.1 基本概念 78
6.1.1 关键概念 79
6.1.2 基于用户与基于项目的分析 79
6.1.3 计算相似度的方法 80
6.1.4 利用与探索 81
6.2 获取Apache Mahout 81
6.3 创建一个推荐引擎 84
6.3.1 图书评分数据集 84
6.3.2 加载数据 84
6.3.3 协同过滤 89
6.4 基于内容的过滤 97
6.5 小结 97
第7章 欺诈与异常检测 98
7.1 可疑与异常行为检测 98
7.2 可疑模式检测 99
7.3 异常模式检测 100
7.3.1 分析类型 100
7.3.2 事务分析 101
7.3.3 规划识别 101
7.4 保险理赔欺诈检测 101
7.4.1 数据集 102
7.4.2 为可疑模式建模 103
7.5 网站流量异常检测 107
7.5.1 数据集 107
7.5.2 时序数据中的异常检测 108
7.6 小结 113
第8章 利用Deeplearning4j进行
图像识别 114
8.1 图像识别简介 114
8.2 图像分类 120
8.2.1 Deeplearning4j 120
8.2.2 MNIST数据集 121
8.2.3 加载数据 121
8.2.4 创建模型 122
8.3 小结 128
第9章 利用手机传感器进行
行为识别 129
9.1 行为识别简介 129
9.1.1 手机传感器 130
9.1.2 行为识别流水线 131
9.1.3 计划 132
9.2 从手机收集数据 133
9.2.1 安装Android Studio 133
9.2.2 加载数据采集器 133
9.2.3 收集训练数据 136
9.3 创建分类器 138
9.3.1 减少假性转换 140
9.3.2 将分类器嵌入移动应用 142
9.4 小结 143
第10章 利用Mallet进行文本挖掘——
主题模型与垃圾邮件检测 144
10.1 文本挖掘简介 144
10.1.1 主题模型 145
10.1.2 文本分类 145
10.2 安装Mallet 146
10.3 使用文本数据 147
10.3.1 导入数据 149
10.3.2 对文本数据做预处理 150
10.4 为BBC新闻做主题模型 152
10.4.1 BBC数据集 152
10.4.2 建模 153
10.4.3 评估模型 155
10.4.4 重用模型 156
10.5 垃圾邮件检测 157
10.5.1 垃圾邮件数据集 158
10.5.2 特征生成 159
10.5.3 训练与测试模型 160
10.6 小结 161
第11章 机器学习进阶 162
11.1 现实生活中的机器学习 162
11.1.1 噪声数据 162
11.1.2 类不平衡 162
11.1.3 特征选择困难 163
11.1.4 模型链 163
11.1.5 评价的重要性 163
11.1.6 从模型到产品 164
11.1.7 模型维护 164
11.2 标准与标记语言 165
11.2.1 CRISP-DM 165
11.2.2 SEMMA方法 166
11.2.3 预测模型标记语言 166
11.3 云端机器学习 167
11.4 Web资源与比赛 168
11.4.1 数据集 168
11.4.2 在线课程 169
11.4.3 比赛 170
11.4.4 网站与博客 170
11.4.5 场馆与会议 171
11.5 小结 171