1.1 数据挖掘和机器学习 1
第一部分 机器学习工具与技术第1章 绪论 1
1.1.1 描述结构模式 2
1.1.2 机器学习 4
1.1.3 数据挖掘 5
1.2 简单的例子:天气问题和其他 5
1.2.1 天气问题 5
1.2.2 隐形眼镜:一个理想化的问题 7
1.2.4 CPU性能:介绍数值预测 9
1.2.3 鸢尾花:一个经典的数值型数据集 9
1.2.5 劳资协商:一个更真实的例子 10
1.2.6 大豆分类:一个经典的机器学习的成功例子 12
1.3 应用领域 13
1.3.1 决策包含评判 14
1.3.2 图像筛选 14
1.3.3 负载预测 15
1.3.4 诊断 15
1.3.5 市场和销售 16
1.3.6 其他应用 17
1.4 机器学习和统计学 18
1.5 用于搜索的概括 19
1.5.1 枚举概念空间 19
1.5.2 偏差 20
1.6 数据挖掘和道德 22
1.7 补充读物 23
2.1 概念 26
第2章 输入:概念、实例和属性 26
2.2 样本 28
2.3 属性 31
2.4 输入准备 33
2.4.1 数据收集 33
2.4.2 ARFF格式 34
2.4.3 稀疏数据 36
2.4.4 属性类型 36
2.4.5 残缺值 37
2.4.7 了解数据 38
2.4.6 不正确的值 38
2.5 补充读物 39
第3章 输出:知识表达 40
3.1 决策表 40
3.2 决策树 40
3.3 分类规则 42
3.4 关联规则 45
3.5 包含例外的规则 46
3.6 包含关系的规则 48
3.7 数值预测树 50
3.8 基于实例的表达 50
3.9 聚类 53
3.10 补充读物 54
第4章 算法:基本方法 56
4.1 推断基本规则 56
4.1.1 残缺值和数值属性 57
4.1.2 讨论 59
4.2 统计建模 59
4.2.1 残缺值和数值属性 62
4.2.2 用于文档分类的贝叶斯模型 63
4.2.3 讨论 65
4.3 分治法:创建决策树 65
4.3.1 计算信息量 68
4.3.2 高度分支属性 69
4.3.3 讨论 71
4.4 覆盖算法:建立规则 71
4.4.2 一个简单的覆盖算法 72
4.4.1 规则与树 72
4.4.3 规则与决策列 75
4.5 挖掘关联规则 76
4.5.1 项集 76
4.5.2 关联规则 78
4.5.3 有效地建立规则 80
4.5.4 讨论 81
4.6 线性模型 81
4.6.1 数值预测:线性回归 81
4.6.2 线性分类:Logistic回归 82
4.6.3 使用感知器的线性分类 85
4.6.4 使用Winnow的线性分类 86
4.7 基于实例的学习 88
4.7.1 距离函数 88
4.7.2 有效寻找最近邻 88
4.7.3 讨论 93
4.8 聚类 93
4.8.1 基于距离的迭代聚类 94
4.8.2 快速距离计算 94
4.9 补充读物 96
4.8.3 讨论 96
第5章 可信度:评估机器学习结果 98
5.1 训练和测试 98
5.2 预测性能 100
5.3 交叉验证 102
5.4 其他估计法 103
5.4.1 留一法 103
5.4.2 自引导法 103
5.5 数据挖掘方案比较 104
5.6 预测概率 107
5.6.1 二次损失函数 108
5.6.2 信息损失函数 108
5.6.3 讨论 109
5.7 计算成本 110
5.7.1 成本敏感分类 111
5.7.2 成本敏感学习 112
5.7.3 上升图 113
5.7.4 ROC曲线 114
5.7.5 反馈率-精确率曲线 116
5.7.6 讨论 117
5.7.7 成本曲线 118
5.8 评估数值预测 120
5.9 最短描述长度原理 122
5.10 聚类方法中应用MDL原理 124
5.11 补充读物 125
第6章 实现:真正的机器学习方案 126
6.1.1 数值属性 127
6.1 决策树 127
6.1.2 残缺值 128
6.1.3 修剪 128
6.1.4 估计误差率 129
6.1.5 决策树归纳的复杂度 132
6.1.6 从决策树到规则 132
6.1.7 C4.5:选择和选项 133
6.1.8 讨论 133
6.2.1 选择测试的标准 134
6.2 分类规则 134
6.2.2 残缺值,数值属性 135
6.2.3 生成好的规则 135
6.2.4 使用全局优化 137
6.2.5 从局部决策树中获得规则 139
6.2.6 包含例外的规则 141
6.2.7 讨论 143
6.3 扩展线性模型 143
6.3.1 最大边际超平面 144
6.3.2 非线性类边界 145
6.3.3 支持向量回归 146
6.3.4 核感知器 147
6.3.5 多层感知器 149
6.3.6 反向传播法 152
6.3.7 径向基函数网络 156
6.3.8 讨论 157
6.4.1 减少样本集数量 158
6.4.2 修剪干扰样本集 158
6.4 基于实例的学习 158
6.4.3 属性加权 159
6.4.4 推广样本集 160
6.4.5 用于推广样本集的距离函数 160
6.4.6 推广的距离函数 161
6.4.7 讨论 161
6.5 数值预测 162
6.5.1 模型树 162
6.5.2 建树 163
6.5.3 修剪树 163
6.5.5 残缺值 164
6.5.4 名词性属性 164
6.5.6 模型树归纳伪代码 165
6.5.7 从模型树到规则 167
6.5.8 局部加权线性回归 168
6.5.9 讨论 169
6.6 聚类 169
6.6.1 选择聚类的个数 169
6.6.2 递增聚类 170
6.6.3 类别效用 174
6.6.4 基于概率的聚类 175
6.6.5 EM算法 177
6.6.6 扩展混合模型 178
6.6.7 贝叶斯聚类 179
6.6.8 讨论 179
6.7 贝叶斯网络 180
6.7.1 做出预测 181
6.7.2 学习贝叶斯网络 184
6.7.3 算法细节 185
6.7.4 用于快速学习的数据结构 186
6.7.5 讨论 188
第7章 转换:处理输入和输出 189
7.1 属性选择 190
7.1.1 独立于方案的选择 191
7.1.2 搜索属性空间 193
7.1.3 特定方案选择 194
7.2 离散数值属性 195
7.2.1 无指导离散 196
7.2.2 基于熵的离散 197
7.2.3 其他离散方法 199
7.2.4 基于熵和基于误差的离散 200
7.2.5 离散属性转换成数值属性 201
7.3 一些有用的转换 201
7.3.1 主分量分析 202
7.3.2 随机投影 204
7.3.3 从文本到属性向量 205
7.4.1 改进决策树 206
7.4 自动数据清理 206
7.3.4 时间序列 206
7.4.2 稳健回归 207
7.4.3 侦察异情 208
7.5 组合多种模型 208
7.5.1 装袋 209
7.5.2 考虑成本的装袋 211
7.5.3 随机化 211
7.5.4 提升 212
7.5.5 叠加回归 215
7.5.6 叠加logistic回归 216
7.5.7 选择树 217
7.5.8 Logistic模型树 219
7.5.9 堆栈 219
7.5.10 误差纠正输出编码 221
7.6 使用没有类标的数据 222
7.6.1 用于分类的聚类 223
7.6.2 联合训练 224
7.6.3 EM和联合训练 224
7.7 补充读物 225
第8章 继续:扩展和应用 228
8.1 从大型的数据集里学习 228
8.2 融合领域知识 230
8.3 文本和网络挖掘 232
8.4 对抗情形 235
8.5 无处不在的数据挖掘 236
8.6 补充读物 238
9.1 Weka中包含了什么 241
第二部分 Weka机器学习平台第9章 Weka简介 241
9.2 如何使用Weka 242
9.3 Weka的其他应用 243
9.4 如何得到Weka 243
第10章 Explorer界面 244
10.1 开始着手 244
10.1.1 准备数据 244
10.1.2 将数据载入探索者 245
10.1.3 建立决策树 246
10.1.4 查看结果 248
10.1.5 重做一遍 249
10.1.6 运用模型 250
10.1.7 运行错误的处理 251
10.2 探索“探索者” 251
10.2.1 载入及过滤文件 252
10.2.2 训练和测试学习方案 255
10.2.3 自己动手:用户分类器 259
10.2.4 使用元学习器 259
10.2.5 聚类和关联规则 260
10.3 过滤算法 262
10.2.6 属性选择 262
10.2.7 可视化 262
10.3.1 无指导属性过滤器 264
10.3.2 无指导实例过滤器 267
10.3.3 有指导过滤器 268
10.4 学习算法 269
10.4.1 贝叶斯分类器 271
10.4.2 树 271
10.4.3 规则 273
10.4.4 函数 274
10.4.6 其他的杂项分类器 277
10.4.5 懒惰分类器 277
10.5 元学习算法 278
10.5.1 装袋和随机化 278
10.5.2 提升 278
10.5.3 合并分类器 279
10.5.5 优化性能 280
10.5.6 针对不同任务重新调整分类器 280
10.5.4 成本敏感学习 280
10.6 聚类算法 281
10.7 关联规则学习器 281
10.8 属性选择 282
10.8.1 属性子集评估器 282
10.8.2 单一属性评估器 283
10.8.3 搜索方法 284
第11章 Knowledge Flow界面 286
11.1 开始着手 286
11.2 知识流组件 288
11.3 配置及连接组件 289
11.4 递增学习 290
第12章 Experimenter界面 292
12.1 开始着手 292
12.1.1 运行一个实验 292
12.1.2 分析所得结果 294
12.2 简单设置 295
12.3 高级设置 295
12.4 分析面板 296
12.5 将运行负荷分布到多个机器上 298
第13章 命令行界面 300
13.1 开始着手 300
13.2 Weka的结构 300
13.2.1 类,实例和包 300
13.2.2 weka.core包 301
13.2.3 weka.classifiers包 301
13.2.4 其他包 304
13.3 命令行选项 305
13.3.1 通用选项 305
13.2.5 Javadoc索引 305
13.3.2 具体方案相关的选项 306
第14章 嵌入式机器学习 308
14.1 一个简单的数据挖掘程序 308
14.2 讲解代码 308
14.2.1 main() 308
14.2.2 MessageClassifier() 308
14.2.3 updateData() 312
14.2.4 classifyMessage() 313
15.1.1 buildClassifier() 315
15.1.2 makeTree() 315
第15章 编写新学习方案 315
15.1 一个分类器范例 315
15.1.3 computeInfoGain() 322
15.1.4 classifyInstance() 322
15.1.5 main() 322
15.2 与实现分类器有关的惯例 323
参考文献 325
索引 342