热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力

深入机器学习

中国水利水电出版社
    【作 者】 【I S B N 】978-7-5226-1080-1 【责任编辑】 【适用读者群】科技 【出版时间】2023-01-03 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】520 【千字数】727 【印 张】32.5 【定 价】128 【丛 书】 【备注信息】
图书详情

    本书将带领读者一起主动拥抱机器学习,快乐翻越高等数学、算法分析、工程实践这“三座大山”。面对三类读者(会用即可、想深入学习、想成为专家)的学习动机和阅读需求,全书一共用19章来讲解机器学习的各种模型,包括机器学习中基础和关键的线性回归、逻辑回归、决策树、贝叶斯、支持向量机、KNN等。全书具有语言表达轻快、模型讲解细致、图表配备众多的特色。

    本书可供计算机、人工智能、大数据等专业的大学生、研究生阅读,也可供需要用到机器学习技术的广大工程技术人员、研究人员作为参考。

    ●深入浅出算法原理 ●轻松实现上手操作

    ●真正粉碎数学硬核 ●Python语言完整实现

    从会用到理解,从上手到真正的领域专家

    机器学习涉及的知识特别多,令人应接不睱;实际工程应用非常广,令人不得不学。目前,很多高校开设了人工智能、大数据专业,很多企业也需要用到人工智能技术。人工智能、大数据基础的知识领域自然还是机器学习。于是,学习机器学习的人越来越多。

    当前市面上已有不少有关机器学习的图书。有的浅尝辄止,一种模型三五页就讲完了,让人大致明白但又感觉不着地;有的满版公式,让人不得要领;有的只有理论讲解没有实例,让人不好动手练习。我觉得根据读者对知识的学习诉求和规律来写作图书可以解决这些问题。我把对机器学习有学习动机的读者分成三类:

    1.会用即可的读者。这类读者的诉求是只要会用某个类库(如scikit-learn)建立简单的机器学习模型、能做数据分析和预测即可。针对这类读者,写一大堆数学公式没有意义。

    2.想深入学习的读者。这类读者的诉求是要学懂每个模型的数学原理,会推导公式。这类读者得掌握微积分、线性代数、概率论、统计学这四门课程的知识。

    3.想成为专家的读者。这类读者的诉求是要学习每种模型的高级知识,并能融会贯通地使用开发工具找到较为理想的模型参数。那就需要掌握一些更为复杂的数据结构、算法分析与设计知识,并能接受厚重的知识阅读量。

    为了满足这三类读者的诉求,考虑到机器学习的模型众多,我不打算在本书中讲解所有的机器学习模型,而是针对机器学习中基础和关键的线性回归、逻辑回归、决策树、贝叶斯、支持向量机、KNN这六种模型来进行详细讲解,并采取如下的写法:

    1.第1、2章用于打基础。讲解有关机器学习的基本概念,说明如何使用Python编程做简单的开发。

    2.对每个模型分3章来讲解。第1章满足会用即可的读者;第2章满足想深入学习的读者;第3章满足想成为专家的读者。由于KNN模型相对简单一些,没有编写第3章。

    3.每个模型均有实例讲解。有的使用scikit-learn库编程实现,有的自主编程实现。我认为理解了原理,完全可以自己编程实现,只是我们没有必要这么做。多数情况下,使用类库编程即可,理解原理则还能有目标地调节参数来找到更为理想的模型。

    本书有三点特色:

    1.语言表达轻快。我比较喜欢阅读文字表达像聊天的图书,自己写作也将运用这种风格,尽管可能会损失一点数学的严谨性。

    2.模型讲解细致。对每个模型有关的数学知识、原理、公式推导都讲得很细致。

    3.图表配备众多。一图决胜千里,能用图表达出原理就用图表达。全书一共配了280多幅插图和80多张表格。

    如果读者能把本书通读下来,相信再去阅读有关某一种模型的专著和学术论文将会轻松很多,也将能看得懂满版的数学公式;而且用于工程实践也不会是难事,读者要做的更多的是分析业务场景的需求、构建模型所需的数据。

    鉴于作者的水平有限,疏漏之处在所难免,敬请读者多批评、指教,我的邮箱是dengziyun@126.com,欢迎来信沟通交流。

    感谢中国水利水电出版社万水分社的周春元副总经理,他经常和我探讨选题的写作、宣传和读者的需求,给了我创作的动力。感谢我的夫人黄婧女士,她承担了大量的家务及带孩子的事务,使得我有时间在工作之余进行创作。还要感谢参考文献中的很多作者及CSDN、博客园、知乎上的很多博主,他们的创作成果为我的写作提供了大量的参考资料。

    本书的创作只是个开始,如果读者反馈写得还不错,我将继续创作讨论机器学习其他模型的图书。最后给出全书为三类读者准备的学习路线总图供阅读、参考。

    为减轻读者购书成本,本书采用了黑白印刷,这可能导致某些图片的印刷效果不如彩色印刷效果好。因此,特将本书所有图片及书中源代码打包,如有需要,读者可扫描下方二维码进行免费下载。

    第1章 认知机器学习 1
    1.1 什么是机器学习 2
    1.1.1 理解机器学习的定义 2
    1.1.2 机器学习有哪些模型 3
    1.2 怎么学习机器学习 4
    1.2.1 学习的总体步骤 4
    1.2.2 理清工具与原理的关系 4
    1.3 搭建开发环境 5
    1.3.1 下载和安装Anaconda 5
    1.3.2 Anaconda的5个工具软件 5
    1.4 小结 6
    第2章 打下开发基础 7
    2.1 学会使用常用的数据结构 8
    2.1.1 列表 8
    2.1.2 字典 10
    2.1.3 numpy 11
    2.2 能用matplotlib绘图 15
    2.2.1 画点 15
    2.2.2 画线 16
    2.2.3 画面 16
    2.2.4 画多个子图 16
    2.3 能编程保存和加载机器学习模型 18
    2.3.1 保存模型 18
    2.3.2 加载模型 18
    2.4 小结 18
    第3章 入门先学会使用线性回归 19
    3.1 初步理解线性回归 20
    3.1.1 涉及的主要术语 20
    3.1.2 线性方程的表达 21
    3.1.3 拟合出的线的样子 24
    3.2 了解线性回归的过程 26
    3.2.1 做线性回归的过程 26
    3.2.2 模型的评价指标 27
    3.2.3 数据集的划分 29
    3.3 做线性回归的实例 30
    3.3.1 用图观察数据项之间的关系 31
    3.3.2 对数据集进行划分 33
    3.3.3 用数据训练模型 34
    3.3.4 用模型做预测 35
    3.3.5 对模型做评价 38
    3.4 使用更复杂的线性回归模型 46
    3.4.1 以一元高次方程为模型 46
    3.4.2 以多元一次方程为模型 51
    3.4.3 以多元高次方程为模型 54
    3.5 小结 58
    第4章 学习线性回归背后的数学原理 60
    4.1 补充学习高等数学知识 62
    4.1.1 导数的意义 62
    4.1.2 常用的求导法则 62
    4.1.3 求某点的导数值 65
    4.1.4 复合函数的导数 68
    4.1.5 偏导数 70
    4.1.6 行列式及其计算方法 72
    4.1.7 矩阵及其计算方法 76
    4.1.8 线性方程组的解法 81
    4.2 理解和使用最小二乘法 85
    4.2.1 为什么叫最小二乘法 85
    4.2.2 求解一元一次方程模型的参数 87
    4.2.3 求解多元一次方程模型的参数 94
    4.2.4 求解一元高次方程和多元高次方程模型的参数 101
    4.2.5 多种模型之间的比较 101
    4.3 学习和使用梯度下降法 102
    4.3.1 什么是梯度和梯度下降法 102
    4.3.2 多元函数的梯度下降法 104
    4.3.3 设置迭代的出口和学习率 110
    4.3.4 线性回归的梯度下降法 113
    4.3.5 由误差函数的图形引发对极小值的讨论 119
    4.3.6 遍历训练数据做线性回归的三种梯度下降法 122
    4.4 小结 126
    第5章 深入浅出线性回归的高级知识 128
    5.1 模型优化要解决什么问题 129
    5.1.1 欠拟合、过拟合和恰当拟合 129
    5.1.2 怎么解决过拟合的问题 130
    5.2 用岭回归对线性回归模型做惩罚 130
    5.2.1 做岭回归用最小二乘法时的数学原理 131
    5.2.2 用岭迹法找到合适的λ值 132
    5.2.3 做岭回归用梯度下降法时的数学原理 135
    5.2.4 用交叉验证法找到合适的λ值 136
    5.3 用Lasso回归对线性回归模型做惩罚 146
    5.3.1 Lasso回归的数学原理 146
    5.3.2 从图形上理解Lasso回归 150
    5.3.3 用坐标轴下降法做Lasso回归 152
    5.4 化繁为简使用scikit-learn库 164
    5.4.1 用最小二乘法做线性回归 164
    5.4.2 做岭回归 166
    5.4.3 做Lasso回归 172
    5.4.4 使用弹性网络做线性回归 174
    5.5 小结 177
    第6章 学会使用逻辑回归 179
    6.1 初步理解逻辑回归 180
    6.1.1 涉及的主要术语 180
    6.1.2 线性分类的图形表达 180
    6.1.3 逻辑回归的图形表达 183
    6.2 用scikit-learn库做逻辑回归 185
    6.2.1 引入乳腺癌数据集 186
    6.2.2 用逻辑回归预测乳腺癌 187
    6.2.3 评估逻辑回归模型 190
    6.2.4 得到模型参数 192
    6.2.5 得到分类的可能性值 193
    6.3 解决多分类的问题 194
    6.3.1 引入鸢尾花数据集 194
    6.3.2 用One-Vs-All解决多分类问题 195
    6.3.3 用One-Vs-One解决多分类问题 203
    6.4 小结 205
    第7章 学习逻辑回归背后的数学原理 207
    7.1 补充学习高等数学知识 208
    7.1.1 凸函数和Hessian矩阵 208
    7.1.2 大数定律和中心极限定理 210
    7.1.3 正态分布和伯努利分布 211
    7.1.4 条件概率和似然函数 212
    7.2 理解逻辑回归的数学原理 213
    7.2.1 找到合适的用于优化的函数 213
    7.2.2 在逻辑回归中使用梯度下降法的数学原理 215
    7.3 用梯度下降法求解逻辑回归模型 216
    7.3.1 将鸢尾花分成两类 216
    7.3.2 预测乳腺癌 220
    7.4 小结 222
    第8章 深入浅出逻辑回归的高级知识 224
    8.1 对逻辑回归做正则化 226
    8.1.1 理解L2正则化的数学原理 226
    8.1.2 用L2正则化预测乳腺癌 226
    8.1.3 用其他惩罚方式做逻辑回归 228
    8.2 化繁为简使用scikit-learn库 228
    8.2.1 熟悉并使用LogisticRegression类 228
    8.2.2 熟悉并使用SGDClassifier类 230
    8.2.3 熟悉并使用LogisticRegressionCV类 232
    8.2.4 用LogisticRegression类做多分类 233
    8.3 补充学习一些更高级的数学知识 234
    8.3.1 泰勒公式 235
    8.3.2 牛顿法和拟牛顿法的优化原理 239
    8.3.3 lbfgs优化方法 247
    8.3.4 newton-cg优化方法 248
    8.3.5 liblinear优化方法 255
    8.3.6 sag和saga优化方法 257
    8.4 用softmax解决多分类问题 262
    8.4.1 多分类的原理 262
    8.4.2 画出多分类的界线 266
    8.5 小结 269
    第9章 学会使用朴素贝叶斯 271
    9.1 初步理解朴素贝叶斯 272
    9.1.1 朴素贝叶斯定理的一些基本术语 272
    9.1.2 朴素贝叶斯怎么得出属于某一类的概率 274
    9.2 用scikit-learn做朴素贝叶斯分类 276
    9.2.1 使用GuassianNB类做鸢尾花分类 276
    9.2.2 使用MultinomialNB类和BernoulliNB类 278
    9.3 小结 279
    第10章 学习朴素贝叶斯背后的数学原理 281
    10.1 理解朴素贝叶斯分类的数学原理 282
    10.1.1 理解全概率公式并推导朴素贝叶斯公式 282
    10.1.2 利用朴素的内涵再推演朴素贝叶斯公式 284
    10.2 进一步说明scikit-learn中做朴素 贝叶斯分类的类 285
    10.2.1 再看GuassianNB类 285
    10.2.2 再看MultinomialNB类和BernoulliNB类 287
    10.3 做区分垃圾邮件和非垃圾邮件的 项目实战 288
    10.3.1 理解spambase数据集 288
    10.3.2 使用3种朴素贝叶斯模型区分垃圾邮件和非垃圾邮件 289
    10.4 小结 291
    第11章 深入浅出贝叶斯的高级知识 292
    11.1 会用有向图表达贝叶斯网络 293
    11.1.1 深刻理解独立和互斥的概念 293
    11.1.2 用有向无环图表达贝叶斯网络 294
    11.1.3 理解贝叶斯网络的3种基本结构 296
    11.1.4 打贝叶斯球来分析两个事件是否关联 299
    11.2 使用pgmpy建模贝叶斯网络 301
    11.2.1 安装pgmpy 301
    11.2.2 构建某女士结交男友决策的贝叶斯网络 301
    11.2.3 用贝叶斯网络做预测 308
    11.2.4 让贝叶斯网络自动学习到条件概率表 310
    11.3 小结 311
    第12章 学会使用决策树 313
    12.1 初步理解决策树 314
    12.1.1 决策树中的一些专业术语 314
    12.1.2 常见的3种决策树算法 315
    12.2 用scikit-learn做决策树分类 315
    12.2.1 用信息增益做分类 316
    12.2.2 用基尼指数做分类 317
    12.2.3 画鼍霾呤� 319
    12.3 小结 321
    第13章 学习决策树背后的数学原理 322
    13.1 学会计算决策树的专业术语表示的量 323
    13.1.1 计算信息熵 323
    13.1.2 计算信息增益 326
    13.1.3 计算信息增益比 328
    13.1.4 计算基尼指数 328
    13.1.5 计算基尼指数增加值 330
    13.2 理解3种决策树算法 330
    13.2.1 理解ID3决策树算法 330
    13.2.2 scikit-learn库用信息增益生成决策树的算法 335
    13.2.3 理解CART算法 339
    13.2.4 用CART算法做分类 341
    13.2.5 用CART算法做回归 342
    13.3 深入学习用scikit-learn做决策树分类 和回归 343
    13.3.1 DecisionTreeClassifier类的方法和属性 343
    13.3.2 DecisionTreeRegressor类的方法和属性 345
    13.3.3 用决策树做鸢尾花分类 346
    13.3.4 用决策树做房价回归分析 351
    13.4 小结 355
    第14章 深入浅出决策树的高级知识 357
    14.1 学会选择和调节决策树模型的参数 358
    14.1.1 用交叉验证法选择更好的参数 358
    14.1.2 用GridSearchCV类调节参数模型 363
    14.2 理解后剪枝的原理并做实现 367
    14.2.1 后剪枝有哪些策略 367
    14.2.2 后剪枝之MEP策略 368
    14.2.3 后剪枝之REP策略 377
    14.2.4 后剪枝之PEP策略 378
    14.2.5 后剪枝之CCP策略 382
    14.3 小结 386
    第15章 学会使用支持向量机 388
    15.1 初步理解支持向量机 389
    15.1.1 线性支持向量机 389
    15.1.2 非线性支持向量机 389
    15.2 用scikit-learn做支持向量机分类 390
    15.2.1 做线性分类 390
    15.2.2 做非线性分类 392
    15.3 小结 394
    第16章 学习支持向量机背后的数学原理 395
    16.1 学会计算距离 396
    16.1.1 两点之间的距离 396
    16.1.2 点到超平面的距离 398
    16.1.3 函数距离和几何距离 402
    16.2 学懂拉格朗日乘数法 402
    16.2.1 用拉格朗日乘数法求等式约束下的极值 403
    16.2.2 再次深刻理解梯度 406
    16.2.3 用拉格朗日乘数法求不等式约束下的极值 408
    16.2.4 用拉格朗日乘数法和KKT应对更复杂的情况 411
    16.3 理解支持向量机的数学原理 413
    16.3.1 从感知机谈起 414
    16.3.2 感知机模型的感知策略 416
    16.3.3 用感知机模型做鸢尾花的二分类 419
    16.4 硬间隔支持向量机 424
    16.4.1 构建出目标函数及约束不等式 425
    16.4.2 用拉格朗日乘数法求解目标函数和约束不等式 427
    16.5 小结 432
    第17章 深入浅出支持向量机的高级知识 434
    17.1 用SMO算法求解硬间隔支持向量机的λ 435
    17.1.1 转化优化问题 436
    17.1.2 迭代更新的办法 438
    17.2 软间隔支持向量机 441
    17.2.1 软间隔支持向量机的优化问题 441
    17.2.2 迭代时对参数值的剪辑 443
    17.2.3 求解其他参数值 445
    17.2.4 求解软间隔支持向量机模型的步骤总结 446
    17.2.5 合页损失函数 447
    17.3 自己编程实现支持向量机 448
    17.3.1 实现SMO算法 448
    17.3.2 实现二分类应用 453
    17.4 非线性支持向量机 455
    17.4.1 理解非线性支持向量机的原理 455
    17.4.2 学懂Mercer定理 458
    17.4.3 最简单的线性核函数 458
    17.4.4 多项式核函数 460
    17.4.5 高斯核函数 461
    17.4.6 Sigmoid核函数 464
    17.5 用支持向量机做回归分析 465
    17.5.1 理解支持向量回归的原理 465
    17.5.2 用拉格朗日乘数法做推导 466
    17.6 深入浅出用scikit-learn做分类和回归 467
    17.6.1 熟悉线性支持向量机(LinearSVC) 467
    17.6.2 熟悉非线性支持向量机(SVC) 468
    17.6.3 熟悉线性向量回归(LinearSVR)和非线性回归(SVR) 469
    17.6.4 调节非线性支持向量机的参数 469
    17.6.5 调节非线性支持向量回归模型的参数 472
    17.7 小结 474
    第18章 学会使用KNN 476
    18.1 理解KNN的基本原理 477
    18.1.1 不用数学公式讲解KNN的原理 477
    18.1.2 扩展到多分类和回归应用 477
    18.1.3 怎么确定KNN模型的k值 478
    18.2 用KNN做分类和回归 478
    18.2.1 用KNN模型做鸢尾花分类 478
    18.2.2 用KNN模型做房屋价格回归 480
    18.3 小结 482
    第19章 学习KNN背后的数学原理 483
    19.1 理解KNN的数学原理 484
    19.1.1 用KNN做分类的数学原理 484
    19.1.2 有多个备选分类及样本数量不均衡问题的解决办法 485
    19.1.3 用KNN做回归的数学原理 487
    19.2 再次讨论距离的度量 487
    19.2.1 欧几里得距离 488
    19.2.2 曼哈顿距离和闵可夫斯基距离 488
    19.2.3 夹角的余弦 489
    19.2.4 杰卡德相似系数和杰卡德相似距离 489
    19.3 利用搜索树加速查找 489
    19.3.1 构建KD树 489
    19.3.2 运用KD树找到k个近邻点 491
    19.3.3 构建Ball树 496
    19.3.4 运用Ball树找到k个近邻点 499
    19.4 调节KNN模型的参数 501
    19.4.1 熟悉KNeighborsClassifier类 501
    19.4.2 调节KNeighborsClassifier模型的参数 502
    19.4.3 熟悉KNeighborsRegressor类并学会调节参数 504
    19.5 小结 506
    后续学习建议 508
    参考文献 509
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册