选择特殊符号
选择搜索类型
请输入搜索
本书通过一系列有趣的实例,由浅入深地介绍了机器学习这一炙手可热的新领域,并且详细介绍了适合机器学习开发的Microsoft F#语言和函数式编程,引 领读者深入了解机器学习的基本概念、核心思想和常用算法。书中的例子既通俗易懂,同时又十分实用,可以作为许多开发问题的起点。通过对本书的阅读,读者无须接触枯燥的数学知识,便可快速上手,为日后的开发工作打下坚实的基础。本书适合对机器学习感兴趣的.NET开发人员阅读,也适合其他读者作为机器学习的入门参考书。
第 1章 256级灰度 1
1.1 什么是机器学习 2
1.2 经典的机器学习问题:图像分类 3
1.2.1 挑战:构建一个数字识别程序 3
1.2.2 机器学习中的距离函数 5
1.2.3 从简单的方法入手 5
1.3 我们的第 一个模型(C#版本) 6
1.3.1 数据集组织 6
1.3.2 读取数据 7
1.3.3 计算图像之间的距离 9
1.3.4 编写分类器 11
1.4 那么,如何知道程序有效? 12
1.4.1 交叉验证 12
1.4.2 评估模型质量 13
1.4.3 改进模型 14
1.5 介绍用于机器学习的F# 15
1.5.1 使用F#交互执行进行实时脚本编写和数据研究 15
1.5.2 创建第 一个F#脚本 18
1.5.3 剖析第 一个F#脚本 19
1.5.4 创建函数管道 22
1.5.5 用元组和模式匹配操纵数据 23
1.5.6 训练和评估分类器函数 24
1.6 改进我们的模型 26
1.6.1 试验距离的另一种定义 26
1.6.2 重构距离函数 27
1.7 我们学到了什么 30
1.7.1 在好的距离函数中能找到什么 30
1.7.2 模型不一定要很复杂 31
1.7.3 为什么使用F# 31
1.8 更进一步 32
第 2章 垃圾邮件还是非垃圾邮件? 33
2.1 挑战:构建一个垃圾邮件检测引擎 34
2.1.1 了解我们的数据集 34
2.1.2 使用可区分联合建立标签模型 35
2.1.3 读取数据集 36
2.2 根据一个单词决定 38
2.2.1 以单词作为线索 38
2.2.2 用一个数字表示我们的确定程度 39
2.2.3 贝叶斯定理 40
2.2.4 处理罕见的单词 42
2.3 组合多个单词 42
2.3.1 将文本分解为标记 42
2.3.2 简单组合得分 43
2.3.3 简化的文档得分 44
2.4 实现分类器 45
2.4.1 将代码提取到模块中 46
2.4.2 文档评分与分类 47
2.4.3 集合和序列简介 49
2.4.4 从文档语料库中学习 51
2.5 训练第 一个分类器 53
2.5.1 实现第 一个标记化程序 54
2.5.2 交互式验证设计 54
2.5.3 用交叉验证确立基准 55
2.6 改进分类器 56
2.6.1 使用每个单词 56
2.6.2 大小写是否重要? 57
2.6.3 简单就是美 58
2.6.4 仔细选择单词 59
2.6.5 创建新特征 61
2.6.6 处理数字值 63
2.7 理解分类错误 64
2.8 我们学到了什么? 66
第3章 类型提供程序的快乐 67
3.1 探索StackOverflow数据 68
3.1.1 StackExchange API 68
3.1.2 使用JSON类型提供程序 70
3.1.3 构建查询问题的最小化DSL 73
3.2 世界上的所有数据 76
3.2.1 世界银行类型提供程序 76
3.2.2 R类型提供程序 77
3.2.3 分析数据与R数据框架 81
3.2.4 .NET数据框架Deedle 83
3.2.5 全世界的数据统一起来! 84
3.3 我们学到了什么? 88
第4章 自行车与人 91
4.1 了解数据 92
4.1.1 数据集有哪些内容? 92
4.1.2 用FSharp.Charting检查数据 93
4.1.3 用移动平均数发现趋势 94
4.2 为数据适配模型 96
4.2.1 定义简单直线模型 96
4.2.2 寻找最低代价模型 97
4.2.3 用梯度下降找出函数的最小值 98
4.2.4 使用梯度下降进行曲线拟合 99
4.2.5 更通用的模型公式 100
4.3 实施梯度下降的方法 101
4.3.1 随机梯度下降 101
4.3.2 分析模型改进 103
4.3.3 批量梯度下降 105
4.4 拯救者——线性代数 107
4.4.1 宝贝,我缩短了公式! 108
4.4.2 用Math.NET进行线性代数运算 109
4.4.3 标准形式 110
4.4.4 利用MKL开足马力 111
4.5 快速演化和验证模型 112
4.5.1 交叉验证和过度拟合 112
4.5.2 简化模型的创建 113
4.5.3 在模型中添加连续特征 115
4.6 用更多特征改进预测 117
4.6.1 处理分类特征 117
4.6.2 非线性特征 119
4.6.3 正规化 122
4.7 我们学到了什么? 123
4.7.1 用梯度下降最大限度地减小代价 123
4.7.2 用回归方法预测数字 124
第5章 你不是独 一无二的雪花 125
5.1 发现数据中的模式 126
5.2 我们所面临的挑战:理解StackOverflow上的主题 128
5.3 用K-均值聚类方法找出聚类 132
5.3.1 改进聚类和质心 133
5.3.2 实施K-均值聚类方法 135
5.4 StackOverflow标签的归类 138
5.4.1 运行聚类分析 138
5.4.2 结果分析 139
5.5 好的聚类和坏的聚类 141
5.6 重新标度数据集以改进聚类 144
5.7 确定需要搜索的聚类数量 147
5.7.1 什么是“好”的聚类? 147
5.7.2 确定StackOverflow数据集的k值 148
5.7.3 最终的聚类 150
5.8 发现特征的相关性 151
5.8.1 协方差和相关系数 151
5.8.2 StackOverflow标签之间的相关性 153
5.9 用主成分分析确定更好的特征 154
5.9.1 用代数方法重新组合特征 155
5.9.2 PCA工作方式预览 156
5.9.3 实现PCA 158
5.9.4 对StackOverflow数据集应用PCA 159
5.9.5 分析提取的特征 160
5.10 提出建议 165
5.10.1 简单标签推荐系统 165
5.10.2 实现推荐系统 166
5.10.3 验证做出的推荐 168
5.11 我们学到了什么? 170
第6章 树与森林 171
6.1 我们所面临的挑战:“泰坦尼克”上的生死存亡 171
6.1.1 了解数据集 172
6.1.2 观察各个特征 173
6.1.3 构造决策桩 174
6.1.4 训练决策桩 176
6.2 不适合的特征 177
6.2.1 数值该如何处理? 177
6.2.2 缺失数据怎么办? 178
6.3 计量数据中的信息 180
6.3.1 用熵计量不确定性 180
6.3.2 信息增益 182
6.3.3 实现最佳特征识别 184
6.3.4 使用熵离散化数值型特征 186
6.4 从数据中培育一棵决策树 187
6.4.1 建立树的模型 187
6.4.2 构建决策树 189
6.4.3 更漂亮的树 191
6.5 改进决策树 192
6.5.1 为什么会过度拟合? 193
6.5.2 用过滤器限制过度的自信 194
6.6 从树到森林 195
6.6.1 用k-折方法进行更深入的交叉验证 196
6.6.2 将脆弱的树组合成健壮的森林 198
6.6.3 实现缺失的部分 199
6.6.4 发展一个森林 200
6.6.5 尝试森林 201
6.7 我们学到了什么? 202
第7章 一个奇怪的游戏 205
7.1 构建一个简单的游戏 206
7.1.1 游戏元素建模 206
7.1.2 游戏逻辑建模 207
7.1.3 以控制台应用的形式运行游戏 209
7.1.4 游戏显示 211
7.2 构建一个粗糙的“大脑” 213
7.2.1 决策过程建模 214
7.2.2 从经验中学习制胜策略 215
7.2.3 实现“大脑” 216
7.2.4 测试“大脑” 218
7.3 我们能更高效地学习吗? 221
7.3.1 探索与利用的对比 221
7.3.2 红色的门和蓝色的门是否不同? 222
7.3.3 贪婪与规划的对比 223
7.4 无限的瓷砖组成的世界 224
7.5 实现“大脑”2.0 227
7.5.1 简化游戏世界 227
7.5.2 预先规划 228
7.5.3 ε-学习 229
7.6 我们学到了什么? 231
7.6.1 符合直觉的简单模型 231
7.6.2 自适应机制 232
第8章 重回数字 233
8.1 调整代码 233
8.1.1 寻求的目标 234
8.1.2 调整距离函数 235
8.1.3 使用Array.Parallel 239
8.2 使用Accord.NET实现不同的分类器 240
8.2.1 逻辑回归 241
8.2.2 用Accord实现简单逻辑回归 242
8.2.3 一对一、一对多分类 244
8.2.4 支持向量机 246
8.2.5 神经网络 248
8.2.6 用Accord创建和训练一个神经网络 250
8.3 用m-brace.net实现伸缩性 253
8.3.1 用Brisk启动Azure上的MBrace 253
8.3.2 用MBrace处理大数据集 256
8.4 我们学到了什么? 259
第9章 结语 261
9.1 描绘我们的旅程 261
9.2 科学! 262
9.3 F#:函数式风格更有效率 263
9.4 下一步是什么? 264
万国城MOMA项目是当代置业(湖南)有限公司开发。当代置业(湖南)有限公司:当代置业(湖南)有限公司为当代节能置业股份有限公司全资子公司,于2005年8月正式成立,倾力打造万国城MOMA(长沙)项目。...
《大设计》无所不在。在会议室和战场上;在工厂车间中也在超市货架上;在自家的汽车和厨房中;在广告牌和食品包装上;甚至还出现在电影道具和电脑图标中。然而,设计却并非只是我们日常生活环境中的一种常见现象,它...
一、 计划申报阶段 二、 城中村情况摸底阶段 三、 改造主体确定阶段 四、 改造项目准备案阶段 五、 建筑物评估阶段 六、 方案编制阶段 七、 整村拆除阶段 八、 无形改造阶段 九、项...
《摄影测量学》内容简介
<正>本书主编王双亭,河南理工大学教授,毕业于解放军测绘学院航空摄影测量专业,主要从事数字摄影测量和遥感信息提取方面的教学与研究工作。本书系统地介绍了摄影测量的基本原理、技术和最新成果。全书共分为六章:第一章介绍摄影测量的基本概念、发展过程及所面临的问题;第二章介绍了摄影像片的获取原理与技术;第三章介绍了中心
《地下工程测量》内容简介
本书结合作者多年教学、科研经验及工程实践,较系统地介绍了地下工程测量的基本理论和基本方法,从理论和实践两个角度帮助读者提高分析和解决地下工程领域测绘的能力。本修订版在传统测量技术的基础上,新增测绘新技术元素,操作适用性更强,新的地铁工程测量一章更具有针对性。全书内容丰富,具有一定的深度和广度,充分反映了地下工程测量最新技术及其应用。
随着互联网技术的飞速发展,全球逐渐步入大数据时代,智能化的趋势越来越明显,各行各业几乎都喊出了智能化的口号。机器学习作为人工智能的一个重要研究方向,在一定程度上成为IT人才的必要技能。本书以一个自研机器学习算法框架的构建为主线,首先介绍了机器学习的相关概念和背景,然后按照代数矩阵运算层、最优化方法层、算法模型层和业务功能层的分层顺序对算法框架展开讲述,旨在通过理论和实践相结合的方式,帮助广大零算法基础的开发人员了解和掌握一定的算法能力,同时也为算法设计人员提供工程实践中的参考范例。
本书实用性强,适合零算法基础的开发人员阅读,也适合具备一定算法能力且希望在工程实践中有所借鉴的工程技术人员阅读。另外,本书还适合作为算法设计人员及机器学习算法爱好者的参考书。
麦嘉铭 BIGO公司大数据高级开发工程师。曾先后于中国科学院、新加坡先进数字科学中心访学交流,发表过多篇国际SCI期刊论文,拥有丰富的算法及工程方面的项目开发经验。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度等多门学科,专门研究计算机怎样模拟或实现人类的学习行为。机器学习是人工智能的核心,是使计算机具有智能的根本途径。本书通过对机器学习的背景知识、算法流程、相关工具、实践案例以及知识图谱等内容的讲解,全面介绍了机器学习的理论基础和实践应用。书中涉及机器学习领域的多个典型算法,并详细给出了机器学习的算法流程。本书适合任何有一定数据功底和编程基础的读者阅读。通过阅读本书,读者不仅可以了解机器学习的理论基础,也可以参照一些典型的应用案例拓展自己的专业技能。同时,本书也适合计算机相关专业的学生以及对人工智能和机器学习感兴趣的读者阅读。