易燃物汇聚 YouTube 有声书与书评
机器学习:公式推导与代码实现 封面

机器学习:公式推导与代码实现

鲁伟编著

7050人在读
19.7万字总字数
¥49.9定价

内容简介

作为一门应用型学科,机器学习植根于数学理论,落地于代码实现。这就意味着,掌握公式推导和代码编写,方能更加深入地理解机器学习算法的内在逻辑和运行机制。本书在对全部机器学习算法进行分类梳理的基础之上,分别对监督学习单模型、监督学习集成模型、无监督学习模型、概率模型四个大类共26个经典算法进行了细致的公式推导和代码实现,旨在帮助机器学习学习者和研究者完整地掌握算法细节、实现方法以及内在逻辑。

读者书评

★★★★★

《机器学习:公式推导与代码实现》|鲁伟 一句话概括 这是一本以“数学推导 + 算法实现 + 案例验证”为主线的机器学习教材,系统梳理监督学习、集成学习、无监督学习和概率模型中的26个经典算法。 核心逻辑 全书采用统一的学习框架: 1. 先明确任务、数据和机器学习三要素。2. 从损失函数、目标函数和数学假设理解模型。3. 推导参数估计、优化和预测过程。4. 用Python、NumPy和sklearn完成代码实现。5. 通过案例检验算法效果。6. 比较模型的适用场景、优缺点和调参方法。 核心观点是:真正理解机器学习,不能只会调用库函数,而要知道模型在优化什么、为什么这样优化,以及代码如何对应公式。 核心内容 1. 机器学习的基本框架 入门部分介绍监督学习、无监督学习、分类、回归、聚类、特征、标签、模型和损失函数等概念。 机器学习的基本流程包括: - 明确问题。- 准备数据。- 选择特征。- 划分训练集和测试集。- 建立模型。- 训练参数。- 评估结果。- 调整模型。 NumPy帮助处理矩阵和向量,sklearn则提供标准化的模型、数据处理和评价工具。 2. 线性回归及其正则化 线性回归通过特征加权组合预测连续数值。书中以二手房房价为例,推导最小二乘法和矩阵形式的参数解。 当特征过多或存在共线性时,模型容易过拟合: - LASSO使用L1正则化,能够推动部分参数变为零,形成一定的特征选择效果。- Ridge使用L2正则化,限制参数过大,提升模型稳定性。 正则化的本质是在拟合数据之外,对模型复杂度加入约束。 3. 逻辑斯蒂回归和分类器 逻辑斯蒂回归通过Sigmoid函数将线性输出转换为概率,适合二分类;多类别任务则可以使用Softmax。 最大似然估计寻找最能解释观测数据的参数,交叉熵损失衡量预测概率与真实类别之间的差异。 分类器还需要关注决策边界、分类阈值、类别不平衡、误分类代价、预测概率和多类别扩展。 4. LDA、kNN、决策树和SVM - 线性判别分析通过类内紧凑、类间分离的目标寻找投影方向。- kNN依据距离寻找邻居,再通过邻居类别进行判断,简单但对距离度量和特征尺度敏感。- 决策树通过信息增益、基尼指数等指标选择划分特征,并可使用ID3、CART和剪枝。- SVM通过最大化分类间隔寻找边界,核函数可以处理非线性数据。 这些模型分别体现了投影、距离、规则划分和几何间隔等不同建模思想。 5. 神经网络从感知机发展而来 感知机用加权输入和激活函数完成简单分类。多层网络通过隐藏层和非线性激活表达更复杂的关系。 神经网络学习依赖前向传播、损失函数、反向传播、梯度计算、参数更新、训练和验证。 书中还介绍卷积、池化、循环网络和PyTorch,说明神经网络如何分别处理图像空间结构和序列关系。 6. 集成学习降低单模型局限 集成学习通过组合多个弱模型或基础模型,提高整体性能。 - AdaBoost根据分类错误调整样本权重。- GBDT逐步拟合前一轮模型的残差。- XGBoost在梯度提升基础上加入正则化、二阶信息和工程优化。- LightGBM通过更高效的树生长和特征处理提升大规模训练效率。- CatBoost针对类别特征和目标泄漏问题进行专门设计。- 随机森林通过Bagging和随机特征选择降低方差。 不同集成模型在精度、速度、内存、类别特征处理和可解释性方面各有取舍。 7. 模型比较和调参需要验证 模型选择不能只看一次测试结果。需要通过交叉验证、学习曲线和多种评价指标判断模型是否过拟合、参数是否合理、数据是否足够,以及不同模型的差异是否稳定。 超参数调优可以使用网格搜索、随机搜索和分层验证,但调参不能替代问题理解和数据质量治理。 8. 聚类分析发现无标签结构 无监督学习不依赖人工标签,而是根据距离、密度或概率分布寻找数据结构。 - k均值通过不断更新聚类中心形成分组。- PCA寻找能够保留主要方差的低维方向。- SVD进行矩阵分解,可用于降维、推荐和特征提取。 聚类结果不是天然存在的客观类别,往往还需要结合领域知识解释和验证。 9. 概率模型描述不确定性 最大信息熵模型在满足已知约束的前提下选择最不偏置的分布。 朴素贝叶斯通过贝叶斯定理计算类别后验概率,并作出分类;贝叶斯网络则用图结构表示变量之间的条件依赖。 概率模型的优势是能够表达不确定性和先验知识,但其效果依赖分布假设、独立性假设和数据质量。 10. EM算法处理潜变量 当数据中存在不可直接观测的隐变量时,EM算法在两个阶段之间迭代: - E步:根据当前参数估计隐变量。- M步:根据隐变量估计更新模型参数。 它可用于高斯混合模型、聚类和其他潜变量问题。算法通过不断提高似然或证据下界寻找局部最优解,因此初始化和收敛情况会影响最终结果。 11. 理论推导帮助理解代码 公式推导能够说明模型的目标函数、参数估计、梯度来源、正则化作用、算法成立条件以及代码中的矩阵运算。 代码实现则能检验公式是否正确,并暴露数据处理、数值稳定性、边界条件和计算效率等实际问题。 本书最值得关注的核心观点 机器学习算法的差异,首先体现在它们对数据和模型的不同假设。 线性模型假设关系可以用较简单的函数表示;决策树通过规则划分空间;kNN依赖局部相似性;SVM关注间隔;概率模型关注分布;神经网络则通过多层表示学习复杂关系。 因此,选算法时不应只看排行榜,而应先问: 数据具有什么结构?目标是什么?哪些假设合理?错误代价如何?模型能否解释、验证和部署? 一段话总结 《机器学习:公式推导与代码实现》从机器学习术语、任务类型、三要素、流程以及NumPy和sklearn基础讲起,系统推导并实现线性回归、逻辑斯蒂回归、LASSO、Ridge、LDA、kNN、决策树、神经网络和SVM等监督学习单模型;随后深入AdaBoost、GBDT、XGBoost、LightGBM、CatBoost和随机森林等集成方法,并比较模型性能与调参策略。无监督部分介绍k均值、PCA和SVD,概率模型部分讨论最大信息熵、朴素贝叶斯、贝叶斯网络和EM算法。全书通过二手房、广告、推荐、分类和聚类等案例,把公式、算法步骤和代码实现连接起来。全书最核心的启发是:算法学习不能停留在调用接口,只有理解目标函数、数学假设、参数更新、代码实现和评价边界,才能真正知道模型为何有效、何时失效,以及如何进行可靠选择。

★★★★★

书如其名,这本书是关于机器学习的公式推导与代码实现,以下是我以为本书较好的三个方面: 1、作者的思路清晰,体系明确,撰写的章节层次分明,基本都遵循一定的结构:算法简介、公式推导、numpy代码实现、与sklearn的对比、小结,所以阅读的时候感觉每章都自成体系; 2、结合公式推导和代码实现,有利于了解算法背后的一些原理,有利于加深对算法执行的理解,有利于提升实现算法的代码水平,从而避免仅局限在调包调参,而是能用简洁的话语描述算法是如何运行的; 3、基本涵盖了主流的传统机器学习算法,26个章节,26个算法,分成了四个部分:监督学习单模型、监督学习集成模型、无监督学习和概率模型,内容夯实,参考章节内容,基本可以做到开箱即用,当然千万不要手写代码了,直接按照方法调包即可,避免重复造轮子。 最后,本书确实也有一些不足之处,作者在最后一章也进行了说明,不过瑕不掩瑜,看完以后还是会有收获,又想起了高数、线代、概率论的相关知识。

★★★★★

生活并不能像machine learning可以将所有学习过程,内在逻辑和运行机制都用代码编译实现,过程中会有主线但也必然会有无数偶然、随机事件的叠出。而事件中每个人感受性想象力的迥异就可能会制造出许许多多平行宇宙,当负向宇宙在某种情况下互相叠加,不同立场的碰撞中情绪膨胀的放大效应就可能会让一个误会一发不可收拾。人是无法保证所有的行为都一定有逻辑和相关性的。重要的是我们要能区分偶然和必然、无关和相关。这非常难,但只要我们逐渐对一件事保持客观理性的深入了解,就会变得越来越容易。尽可能去关上一些对负向言外之意的想象力开关,尝试逐渐脱敏的过程会让我们所有人都慢慢拥有更好的生命体验。

★★★★★

本书涵盖监督学习、无监督学习、概率模型等主流机器学习算法,共26个经典算法,全书代码在GitHub开源。

★★★★★

基本上从头到尾看了一遍,还不错。不足之处是,理论讲解,有的地方比较粗糙。好的地方是,所附的代码都是可以跑通的,虽然未必最优,也未必pythonic。

★★★★★

感谢鲁伟先生! 感谢书友们,尤其是“无知”先生! 这本书很好地带我推开门,有了个全景式的初步认识。 认真敲入了全部代码,除了 决策树 的有关部分,其它都成功运行了 (稍加update),得到实在的编程体会,尤其是用Numpy手搓。 认真对照了作者在Github上的代码,增加了认识。 感谢CSDN,StackOverFlow,GeeksForGeeks 等社区的诸多作者! 还有百度百科,维基百科。 还和ChatGPT互动了几次,见识了它的强大与搞笑。 期待接下来进入 李航先生的《统计学习方法》,更深地理解相关的数学!

★★★☆☆

虽然本书名重点提到了“公式推导”,但其实公式推导并不细致,缺乏细节,算不上亮点,如果想看公式推导,应该看《统计学习方法》之类的偏理论书籍。 本书真正的亮点是代码实现,大概60%的算法都用底层代码亲自实现,而不是简单的调用python库,作者的GitHub仓库提供了本书全套代码,大部分能运行。 遗憾的是,底层代码实现仅占60%,到了本书后半段,代码实现非常敷衍,最后几章干脆直接调用python库了。 另一个遗憾是,代码错误较多,直接导致算法预测结果不准确。我在github上给作者提了几个PR修复错误,大部分都迅速通过合并了,但最后一个PR作者至今没回应,不知道什么原因。总之如果读者想知道具体的代码错误,可以去GitHub上看看。 代码实现虽然是本书的亮点,但在如今的ChatGPT时代,我们可以让ChatGPT帮助我们写出算法的代码实现,大多数时候代码都能运行良好,至少比本书的代码好多了,所以本书的亮点又进一步被削弱了。

★★★★★

本书总共介绍了26种机器学习模型与算法,几乎涵盖了全部主流的机器学习算法,包括线性回归、对数几率回归、LASSO回归、Ridge回归、LDA、近邻、决策树、感知机、神经网络、支持向量机、AdaBoost、GBDT、XGBoost、LightGBM、CatBoost、随机森林、聚类算法与均值聚类、PCA、SVD、最大信息熵、朴素贝叶斯、贝叶斯网络、EM算法、HMM、CRF和MCMC。 机器学习方法都是由模型(model)、策略(strategy)和算法(algorithm)三个要素构成的,具体可理解为机器学习模型在一定的优化策略下使用相应求解算法来达到最优目标的过程。

★★★★★

部分数学推导跳跃性较大、数学符号未提前解释所表示的含义,有时难以理解算法是如何推导出来的,此外有些实现的算法和推导过程中的算法有些不一样。

★☆☆☆☆

有些公式,没有推导过程,直接就出来了,可读性比较差

书籍信息

作者鲁伟编著
出版社人民邮电出版社
出版时间2022-01-01
ISBN9787115579522
分类计算机-人工智能
格式EPUB
完结状态连载中
章节数147