机器学习实践 测试驱动的开发方法 内容简介

机器学习实践 测试驱动的开发方法 内容简介

机器学习实践 测试驱动的开发方法 目录

机器学习实践 测试驱动的开发方法 精彩文摘

《机器学习实践:测试驱动的开发方法》面技术开发人员、CTO和咨询顾问人员,介绍了机器学习的基本原理,涵盖了测试驱动的机器学习、机器学习概述、K近邻分类、朴素贝叶斯分类、隐马尔科夫模型、支持向量机、神经网络、聚类、核岭回归、模型改进与数据提取等内容。第1章 测试驱动的机器学习1.1 TDD的历史1.2 TDD与科学方法1.2.1 TDD可构建有效的逻辑命题1.2.2 TDD要求你将假设以文字或代码的形式记录下来1.2.3 TDD和科学方法的闭环反馈机制1.3 机器学习中的风险1.3.1 数据的不稳定性1.3.2 欠拟合1.3.3 过拟合1.3.4 未来的不可预测性1.4 为降低风险应采用的测试1.4.1 利用接缝测试减少数据中的不稳定因素1.4.2 通过交叉验证检验拟合效果1.4.3 通过测试训练速度降低过拟合风险1.4.4 检测未来的精度和查全率漂移情况1.5 小结第2章 机器学习概述2.1 什么是机器学习2.1.1 有监督学习2.1.2 无监督学习2.1.3 强化学习2.2 机器学习可完成的任务2.3 本书采用的数学符号2.4 小结第3章 K近邻分类3.1 K近邻分类的历史3.2 基于邻居的居住幸福度3.3 如何选择K3.3.1 猜测K的值3.3.2 选择K的启发式策略3.3.3 K的选择算法3.4 何谓“近”3.4.1 Minkowski 距离3.4.2 Mahalanobis 距离3.5 各类别的确定3.6 利用KNN算法和OpenCV实现胡须和眼镜的检测3.6.1 类图3.6.2 从原始图像到人脸图像3.6.3 Face类3.6.4 Neighborhood类3.7 小结第4章 朴素贝叶斯分类4.1 利用贝叶斯定理找出欺诈性订单4.1.1 条件概率4.1.2 逆条件概率4.2 朴素贝叶斯分类器4.2.1 链式法则4.2.2 贝叶斯推理中的朴素性4.2.3 伪计数4.3 垃圾邮件过滤器4.3.1 类图4.3.2 数据源4.3.3 Email类4.3.4 符号化与上下文4.3.5 SpamTrainer类4.3.6 通过交叉验证将错误率最小化4.4 小结第5章 隐马尔可夫模型5.1 利用状态机跟踪用户行为5.1.1 隐含状态的输出和观测5.1.2 利用马尔可夫假设简化问题5.1.3 利用马尔可夫链而非有限状态机5.1.4 隐马尔可夫模型5.2 评估:前向-后向算法5.3 利用维特比算法求解解码问题5.4 学习问题5.5 利用布朗语料库进行词性标注5.5.1 词性标注器的首要问题:CorpusParser5.5.2 编写词性标注器5.5.3 通过交叉验证获取模型的置信度5.5.4 模型的改进方案5.6 小结第6章 支持向量机6.1 求解忠诚度映射问题6.2 SVM的推导过程6.3 非线性数据6.3.1 核技巧6.3.2 软间隔6.4 利用SVM进行情绪分析6.4.1 类图6.4.2 Corpus类6.4.3 从语料库返回一个无重复元素的单词集6.4.4 CorpusSet类6.4.5 SentimentClassifier类6.4.6 随时间提升结果6.5 小结第7章 神经网络7.1 神经网络的历史7.2 何为人工神经网络7.2.1 输入层7.2.2 隐含层7.2.3 神经元7.2.4 输出层7.2.5 训练算法7.3 构建神经网络7.3.1 隐含层数目的选择7.3.2 每层中神经元数目的选择7.3.3 误差容限和最大epoch的选择7.4 利用神经网络对语言分类7.4.1 为语言编写接缝测试7.4.2 网络类的交叉验证7.4.3 神经网络的参数调校7.4.4 收敛性测试7.4.5 神经网络的精度和查全率7.4.6 案例总结7.5 小结第8章 聚类8.1 用户组8.2 K均值聚类8.2.1 K均值算法8.2.2 K均值聚类的缺陷8.3 EM聚类算法8.4 不可能性定理8.5 音乐归类8.5.1 数据收集8.5.2 用K均值聚类分析数据8.5.3 EM聚类8.5.4 爵士乐的EM聚类结果8.6 小结第9章 核岭回归9.1 协同过滤9.2 应用于协同过滤的线性回归9.3 正则化技术与岭回归9.4 核岭回归9.5 理论总结9.6 用协同过滤推荐啤酒风格9.6.1 数据集9.6.2 我们所需的工具9.6.3 评论者9.6.4 编写代码确定某人的偏好9.6.5 利用用户偏好实现协同过滤9.7 小结第10章 模型改进与数据提取10.1 维数灾难问题10.2 特征选择10.3 特征变换10.4 主分量分析10.5 独立分量分析10.6 监测机器学习算法10.6.1 精度与查全率:垃圾邮件过滤10.6.2 混淆矩阵10.7 均方误差10.8 产品环境的复杂性10.9 小结第11章 结语11.1 机器学习算法回顾11.2 如何利用这些信息来求解问题11.3 未来的学习路线1.2.1 TDD可构建有效的逻辑命题科学家们在使用科学方法时,首先尝试着去求解一个问题,然后证明方法的有效性。问题求解需要创造性猜想,但如果没有严格的证明,它只能算是一种“信念”。柏拉图认为,知识是一种被证明为正确的信念。我们不但需要正确的信念,而且也需要能够证明其正确的确凿证据。为证明我们的信念的正确性,我们需要构建一个稳定的逻辑命题。在逻辑学中,用于证明某个观点是否正确的条件有两种——必要条件和充分条件。必要条件是指那些如果缺少了它们假设便无法成立的条件。例如,全票通过或飞行前的检查都属于必要条件。这里要强调的是,为确保我们所做的测试是正确的,所有的条件都必须满足。与必要条件不同,充分条件意味着某个论点拥有充足的证据。例如,打雷是闪电的充分条件,因为二者总是相伴出现的,但打雷并不是闪电的必要条件。很多情形下,充分条件是以统计假设的形式出现的。它可能不够完善,但要证明我们所做测试的合理性已然足够充分了。为论证所提出的解的有效性,科学家们需要使用必要条件和充分条件。科学方法和 TDD 都需要严格地使用这两种条件,以使所提出的一系列论点成为一个有机整体。然而,二者的不同之处在于,科学方法使用的是假设检验和公理,而 TDD 使用的则是集成和单元测试(参见表 1-1)。

类似文章

发表评论

您的电子邮箱地址不会被公开。