猜你喜欢
矩阵力量:线性代数全彩图解+微课+Python编程

矩阵力量:线性代数全彩图解+微课+Python编程

书籍作者:姜伟生 ISBN:9787302632511
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2560
创建日期:2024-04-01 发布日期:2024-04-01
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
下载地址
内容简介

数据科学和机器学习已经深度融合到我们生活的方方面面,而数学正是开启未来大门的钥匙。不是所 有人生来都握有一副好牌,但是掌握“数学 + 编程 + 机器学习”绝对是王牌。这一次,学习数学不再是为了考试、分数、升学,而是投资时间、自我实现、面向未来。为了让大家学数学、用数学,甚至爱上数学, 在创作这套书时,作者尽量克服传统数学教材的各种弊端,让大家学习时有兴趣、看得懂、有思考、更自信、用得着。

鸢尾花书有三大板块——编程、数学、实践。数据科学、机器学习的各种算法离不开数学,本册《矩阵力量》是“数学”板块的第 2 本,主要介绍常用线性代数工具。任何数学工具想要从一元推广到多元,比如多元微积分、多元统计,都绕不开线性代数。

《矩阵力量:线性代数全彩图解 + 微课 + Python编程》共 25 章内容,可以归纳为 7 大板块:向量、矩阵、向量空间、矩阵分解、微积分、空间几何、数据。《矩阵力量:线性代数全彩图解 + 微课 + Python编程》在讲解线性代数工具时,会穿插介绍其在数据科学和机器学习领域的应用场景,让大家学以致用。《矩阵力量:线性代数全彩图解 + 微课 + Python编程》读者群包括所有在工作中应用数学的朋友,尤其适用于初级程序员进阶,大学本科数学开窍,高级数据分析师,人工智能开发者。


作者简介

姜伟生 博士 FRM。

勤奋的小镇做题家,热爱知识可视化和开源分享。自2022年8月开始,在GitHub上开源“鸢尾花书”学习资源,截至2023年6月,已经分享3000多页PDF、3000多幅矢量图、约1000个代码文件,全球读者数以万计。


编辑推荐

这是一套前所未见的数学书,更是一套具备极高颜值的书。姜伟生博士自谦“小镇做题家”,实际上他是国际著名金融企业的金融科技专家。很难想象一位以“术数”为业的金融家具备如此彻底的分享动机,同时,姜博士有着卓越的艺术品位和设计能力,不仅承担了这套书的精深内容,更承担了全系图书的整体设计。希望读者从枯燥的常规数学书中解脱出来,赏心悦目地慢慢走入缤纷的数学宇宙。

《矩阵力量:线性代数全彩图解+微课+Python编程》电子书免费下载

pdf下载 txt下载 epub下载 mobi下载 azw3下载

前言


Preface


前言



感谢

首先感谢大家的信任。

  作者仅仅是在学习应用数据科学和机器学习算法时,多读了几本数学书,多做了一些思考和知识整理而已。知者不言,言者不知。知者不博,博者不知。由于作者水平有限,斗胆把自己所学所思与大家分享,作者权当无知者无畏。希望大家在B站视频下方和Github多提意见,让这套书成为作者和读者共同参与创作的作品。

  特别感谢清华大学出版社的栾大成老师。从选题策划、内容创作到装帧设计,栾老师事无巨细、一路陪伴。每次与栾老师交流,都能感受到他对优质作品的追求、对知识分享的热情。


出来混总是要还的

  曾几何时,考试是我们学习数学的唯一动力。考试是头悬梁的绳,是锥刺股的锥。我们中的大多数人从小到大为各种考试埋头题海,数学味同嚼蜡,甚至让人恨之入骨。

  数学给我们带来了无尽的“折磨”。我们甚至恐惧数学,憎恨数学,恨不得一走出校门就把数学抛之脑后,老死不相往来。

  可悲可笑的是,我们很多人可能会在毕业的五年或十年以后,因为工作需要,不得不重新学习微积分、线性代数、概率统计,悔恨当初没有学好数学,甚至迁怒于教材和老师。

这一切不能都怪数学,值得反思的是我们学习数学的方法和目的。


再给自己一个学数学的理由

为考试而学数学,是被逼无奈的举动。而为数学而数学,则又太过高尚而遥不可及。

  相信对于绝大部分的我们来说,数学是工具、是谋生手段,而不是目的。我们主动学数学,是想用数学工具解决具体问题。

现在,这套书给大家一个“学数学、用数学”的全新动力—数据科学、机器学习。

数据科学和机器学习已经深度融合到我们生活的方方面面,而数学正是开启未来大门的钥匙。不


是所有人生来都握有一副好牌,但是掌握“数学 + 编程 + 机器学习”的知识绝对是王牌。这次,学习数学不再是为了考试、分数、升学,而是投资时间、自我实现、面向未来。

未来已来,你来不来?


本套鸢尾花书如何帮到你

  为了让大家学数学、用数学,甚至爱上数学,作者可谓颇费心机。在创作这套书时,作者尽量克服传统数学教材的各种弊端,让大家学习时有兴趣、看得懂、有思考、更自信、用得着。

为此,丛书在内容创作上突出以下几个特点。



  虽然本书标榜“从加减乘除到机器学习”,但是建议读者朋友们至少具备高中数学知识。如果读者正在学习或曾经学过大学数学 (微积分、线性代数、概率统计),这套书就更容易读懂了。


聊聊数学

数学是工具。锤子是工具,剪刀是工具,数学也是工具。

  数学是思想。数学是人类思想高度抽象的结晶体。在其冷酷的外表之下,数学的内核实际上就是人类朴素的思想。学习数学时,知其然,更要知其所以然。不要死记硬背公式定理,理解背后的数学思想才是关键。如果你能画一幅图、用大白话描述清楚一个公式、一则定理,这就说明你真正理解了它。

  数学是语言。就好比世界各地不同种族有自己的语言,数学则是人类共同的语言和逻辑。数学这门语言极其精准、高度抽象,放之四海而皆准。虽然我们中大多数人没有被数学“女神”选中,不能为人类对数学认知开疆扩土;但是,这丝毫不妨碍我们使用数学这门语言。就好比,我们不会成为语言学家,我们完全可以使用母语和外语交流。

  数学是体系。代数、几何、线性代数、微积分、概率统计、优化方法等,看似一个个孤岛,实际上都是数学网络的一条条织线。建议大家学习时,特别关注不同数学板块之间的联系,见树,更要见林。

  数学是基石。拿破仑曾说“数学的日臻完善和国强民富息息相关。”数学是科学进步的根基,是经济繁荣的支柱,是保家卫国的武器,是探索星辰大海的航船。

数学是艺术。数学和音乐、绘画、建筑一样,都是人类艺术体验。通过可视化工具,我们会在看


II


似枯燥的公式、定理、数据背后,发现数学之美。

  数学是历史,是人类共同记忆体。“历史是过去,又属于现在,同时在指引未来。”数学是人类的集体学习思考,它把人的思维符号化、形式化,进而记录、积累、传播、创新、发展。从甲骨、泥板、石板、竹简、木牍、纸草、羊皮卷、活字印刷、纸质书,到数字媒介,这一过程持续了数千年, 至今绵延不息。

  数学是无穷无尽的想象力,是人类的好奇心,是自我挑战的毅力,是一个接着一个的问题,是看似荒诞不经的猜想,是一次次胆大包天的批判性思考,是敢于站在前人臂膀之上的勇气,是孜孜不倦地延展人类认知边界的不懈努力。


家园、诗、远方

诺瓦利斯曾说:“哲学就是怀着一种乡愁的冲动到处去寻找家园。”

  在纷繁复杂的尘世,数学纯粹得就像精神的世外桃源。数学是,一束光,一条巷,一团不灭的希望,一股磅礴的力量,一个值得寄托的避风港。

  打破陈腐的锁链,把功利心暂放一边,我们一道怀揣一分乡愁,心存些许诗意,踩着艺术维度,投入数学张开的臂膀,驶入它色彩斑斓、变幻无穷的深港,感受久违的归属,一睹更美、更好的远方。


前言 《矩阵力量》


III


Acknowledgement


致谢



To my parents.

谨以此书献给我的母亲父亲。




How to Use the Book


使用本书



丛书资源

鸢尾花书提供的配套资源如下:


本书约定

书中为了方便阅读以及查找配套资源,特别设计了如下标识。


数学家、科学家、艺术家等大家语录



配套Python代码完

成核心计算和制图


引出本书或本系列

其他图书相关内容


相关数学家生平贡献介绍



代码中核心Python

库函数和讲解



用Streamlit开发制作App应用



提醒读者需要格外注意的知识点



每章总结或升华本章内容



思维导图总结本章脉络和核心内容



介绍数学工具与

机器学习之间的联系



配套微课视频二维码



核心参考和推荐阅读文献


微课视频

本书配套微课视频均发布在B站—生姜DrGinger。


  微课视频是以“聊天”的方式,和大家探讨某个数学话题的重点内容,讲解代码中可能遇到的难点,甚至侃侃历史、说说时事、聊聊生活。

本书配套微课视频的目的是引导大家自主编程实践、探究式学习,并不是“照本宣科”。

  纸质图书上已经写得很清楚的内容,视频课程只会强调重点。需要说明的是,图书内容不是视频的“逐字稿”。


App开发

本书配套多个用Streamlit开发的App,用来展示数学动画、数据分析、机器学习算法。

  Streamlit是个开源的Python库,能够方便快捷地搭建、部署交互型网页App。Streamlit简单易用,很受欢迎。Streamlit兼容目前主流的Python数据分析库,比如NumPy、Pandas、Scikit-learn、PyTorch、TensorFlow等等。Streamlit还支持Plotly、Bokeh、Altair等交互可视化库。

  本书中很多App设计都采用Streamlit + Plotly方案。此外,本书专门配套教学视频手把手和大家一起做App。


大家可以参考如下页面,更多了解Streamlit:


实践平台

  本书作者编写代码时采用的IDE (Integrated Development Environment) 是Spyder,目的是给大家提供简洁的Python代码文件。

但是,建议大家采用JupyterLab或Jupyter Notebook作为鸢尾花书配套学习工具。

  简单来说,Jupyter集合“浏览器 + 编程 + 文档 + 绘图 + 多媒体 + 发布”众多功能于一身,非常适合探究式学习。

  运行Jupyter无须IDE,只需要浏览器。Jupyter容易分块执行代码。Jupyter支持inline打印结果,直接将结果图片打印在分块代码下方。Jupyter还支持很多其他语言,如R和Julia。

  使用Markdown文档编辑功能,可以编程同时写笔记,不需要额外创建文档。在Jupyter中插入图片和视频链接都很方便,此外还可以插入Latex公式。对于长文档,可以用边栏目录查找特定内容。


VI


Jupyter发布功能很友好,方便打印成HTML、PDF等格式文件。

  Jupyter也并不完美,目前尚待解决的问题有几个:Jupyter中代码调试不是特别方便。Jupyter没有variable explorer,可以inline打印数据,也可以将数据写到CSV或Excel文件中再打开。Matplotlib 图像结果不具有交互性,如不能查看某个点的值或者旋转3D图形,此时可以考虑安装 (jupyter matplotlib)。注意,利用Altair或Plotly绘制的图像支持交互功能。对于自定义函数,目前没有快捷键直接跳转到其定义。但是,很多开发者针对这些问题正在开发或已经发布相应插件,请大家留意。

  大家可以下载安装Anaconda。JupyterLab、Spyder、PyCharm等常用工具,都集成在Anaconda 中。下载Anaconda的地址为:


JupyterLab探究式学习视频:


代码文件

鸢尾花书的Python代码文件下载地址为:


同时也在如下GitHub地址备份更新:


  Python代码文件会不定期修改,请大家注意更新。图书原始创作版本PDF(未经审校和修订,内容和纸质版略有差异,方便移动终端碎片化学习以及对照代码)和纸质版本勘误也会上传到这个GitHub 账户。因此,建议大家注册GitHub账户,给书稿文件夹标星 (Star) 或分支克隆 (Fork)。

考虑再三,作者还是决定不把代码全文印在纸质书中,以便减少篇幅,节约用纸。

  本书编程实践例子中主要使用“鸢尾花数据集”,数据来源是Scikit-learn库、Seaborn库。要是给鸢尾花数学大系起个昵称的话,作者乐见“鸢尾花书”。


使用全书


《矩阵力量》


VII


学习指南

大家可以根据自己的偏好制定学习步骤,本书推荐如下步骤。


1

2

3

浏览本章思维导图,

下载本章配套

观看微课视频,阅

把握核心脉络

Python 代码文件

读本章正文内容

4

用Jupyter 创建笔

5

尝试开发数学动画、

6

翻阅本书推荐参

记,编程实践

机器学习 App

考文献


  学完每章后,大家可以在社交媒体、技术论坛上发布自己的Jupyter笔记,进一步听取朋友们的意见,共同进步。这样做还可以提高自己学习的动力。

  另外,建议大家采用纸质书和电子书配合阅读学习,学习主阵地在纸质书上,学习基础课程最重要的是沉下心来,认真阅读并记录笔记,电子书可以配合查看代码,相关实操性内容可以直接在电脑上开发、运行、感受,Jupyter笔记同步记录起来。

强调一点:学习过程中遇到困难,要尝试自行研究解决,不要第一时间就去寻求他人帮助。


意见建议

欢迎大家对鸢尾花书提意见和建议,丛书专属邮箱地址为:


也欢迎大家在B站视频下方留言互动。

VIII


目录


绪论 1

第1章 不止向量 7

1.1 有数据的地方,必有矩阵 8

1.2 有矩阵的地方,更有向量 10

1.3 有向量的地方,就有几何 12

1.4 有几何的地方,皆有空间 17

1.5 有数据的地方,定有统计 20

第2章 向量运算 23

2.1 向量:多面手 25

2.2 行向量、列向量 27

2.3 向量长度:模,欧氏距离,L2范数 31

2.4 加减法:对应位置元素分别相加减 35

2.5 标量乘法:向量缩放 36

2.6 向量内积:结果为标量 37

2.7 向量夹角:反余弦 43

2.8 余弦相似度和余弦距离 45

2.9 向量积:结果为向量 47

2.10 逐项积:对应元素分别相乘 50

2.11 张量积:张起网格面 51

第3章 向量范数 57

3.1 Lp范数:L2范数的推广 58

3.2 Lp范数和超椭圆的联系 61

3.3 L1范数:旋转正方形 64

3.4 L2范数:正圆 66

3.5 L∞范数:正方形 69

3.6 再谈距离度量 71

第4章 矩阵 77

4.1 矩阵:一个不平凡的表格 79

4.2 矩阵形状:每种形状都有特殊用途 81

4.3 基本运算:加减和标量乘法 85

4.4 广播原则 86

4.5 矩阵乘法:线性代数的运算核心 88

4.6 两个视角解剖矩阵乘法 90

4.7 转置:绕主对角线镜像 92

4.8 矩阵逆:“相当于”除法运算 94

4.9 迹:主对角元素之和 95

4.10 逐项积:对应元素相乘 97

4.11 行列式:将矩阵映射到标量值 98

第5章 矩阵乘法 105

5.1 矩阵乘法:形态丰富多样 107

5.2 向量和向量 107

5.3 再聊全1列向量 112

5.4 矩阵乘向量:线性方程组 116

5.5 向量乘矩阵乘向量:二次型 120

5.6 方阵乘方阵:矩阵分解 123

5.7 对角阵:批量缩放 124

5.8 置换矩阵:调换元素顺序 127

5.9 矩阵乘向量:映射到一维 128

5.10 矩阵乘矩阵:映射到多维 130

5.11 长方阵:奇异值分解、格拉姆矩阵、张量积 133

5.12 爱因斯坦求和约定 136

5.13 矩阵乘法的几个雷区 138

第6章 分块矩阵 143

6.1 分块矩阵:横平竖直切豆腐 145

6.2 矩阵乘法第一视角:标量积展开 149

6.3 矩阵乘法第二视角:外积展开 150

6.4 矩阵乘法更多视角:分块多样化 154

6.5 分块矩阵的逆 160

6.6 克罗内克积:矩阵张量积 160

第7章 向量空间 165

7.1 向量空间:从直角坐标系说起 166

7.2 给向量空间涂颜色:RGB色卡 178

7.3 张成空间:线性组合红、绿、蓝三原色 179

7.4 线性无关:红色和绿色,调不出青色 183

7.5 非正交基底:青色、品红、黄色 184

7.6 基底转换:从红、绿、蓝,到青色、品红、黄色 187

第8章 几何变换 189

8.1 线性变换:线性空间到自身的线性映射 191

8.2 平移:仿射变换,原点变动 195

8.3 缩放:对角阵 196

8.4 旋转:行列式值为1 200

8.5 镜像:行列式值为负 205

8.6 投影:降维操作 207

8.7 再谈行列式值:几何视角 208

第9章 正交投影 215

9.1 标量投影:结果为标量 217

9.2 向量投影:结果为向量 218

9.3 正交矩阵:一个规范正交基 222

9.4 规范正交基性质 226

9.5 再谈镜像:从投影视角 229

9.6 格拉姆-施密特正交化 231

9.7 投影视角看回归 233

第10章 数据投影 241

10.1 从一个矩阵乘法运算说起 242

10.2 二次投影 + 层层叠加 245

10.3 二特征数据投影:标准正交基 249

10.4 二特征数据投影:规范正交基 254

10.5 四特征数据投影:标准正交基 259

10.6 四特征数据投影:规范正交基 263

10.7 数据正交化 269

第11章 矩阵分解 277

11.1 矩阵分解:类似因式分解 278

11.2 LU分解:上下三角 279

11.3 Cholesky分解:适用于正定矩阵 280

11.4 QR分解:正交化 282

11.5 特征值分解:刻画矩阵映射的特征 286

11.6 奇异值分解:适用于任何实数矩阵 290

第12章 Cholesky分解 295

12.1 Cholesky分解 296

12.2 正定矩阵才可以进行Cholesky分解 297

12.3 几何角度:开合 299

12.4 几何变换:缩放 → 开合 302

12.5 推广到三维空间 305

12.6 从格拉姆矩阵到相似度矩阵 309

第13章 特征值分解 313

13.1 几何角度看特征值分解 315

13.2 旋转 → 缩放 → 旋转 317

13.3 再谈行列式值和线性变换 320

13.4 对角化、谱分解 323

13.5 聊聊特征值 328

13.6 特征值分解中的复数现象 330

第14章 深入特征值分解 333

14.1 方阵开方 334

14.2 矩阵指数:幂级数的推广 335

14.3 斐波那契数列:求通项式 337

14.4 马尔科夫过程的平稳状态 339

14.5 瑞 利商 342

14.6 再谈椭圆:特征值分解 346

第15章 奇异值分解 353

15.1 几何视角:旋转 → 缩放 → 旋转 355

15.2 不同类型SVD分解 359

15.3 左奇异向量矩阵U 360

15.4 右奇异向量矩阵V 363

15.5 两个视角:投影和数据叠加 365

第16章 深入奇异值分解 369

16.1 完全型:U为方阵 371

16.2 经济型:S去掉零矩阵,变方阵 372

16.3 紧凑型:非满秩 373

16.4 截断型:近似 374

16.5 数据还原:层层叠加 375

16.6 估计与误差:截断型SVD 379

16.7 正交投影:数据正交化 382

第17章 多元函数微分 387

17.1 偏导:特定方向的变化率 388

17.2 梯度向量:上山方向 392

17.3 法向量:垂直于切平面 396

17.4 方向性微分:函数任意方向的变化率 398

17.5 泰勒展开:一元到多元 402

第18章 拉格朗日乘子法 407

18.1 回顾优化问题 408

18.2 等式约束条件 410

18.3 线性等式约束 414

18.4 非线性等式约束 415

18.5 不等式约束 417

18.6 再谈特征值分解:优化视角 420

18.7 再谈SVD:优化视角 423

18.8 矩阵范数:矩阵 → 标量,矩阵“大小” 426

18.9 再谈数据正交投影:优化视角 428

第19章 直线到超平面 437

19.1 切向量:可以用来定义直线 438

19.2 法向量:定义直线、平面、超平面 441

19.3 超平面:一维直线和二维平面的推广 443

19.4 平面与梯度向量 446

19.5 中垂线:用向量求解析式 451

19.6 用向量计算距离 453

第20章 再谈圆锥曲线 457

20.1 无处不在的圆锥曲线 459

20.2 正圆:从单位圆到任意正圆 460

20.3 单位圆到旋转椭圆:缩放 → 旋转 → 平移 463

20.4 多元高斯分布:矩阵分解、几何变换、距离 468

20.5 从单位双曲线到旋转双曲线 474

20.6 切线:构造函数,求梯度向量 476

20.7 法线:法向量垂直于切向量 479

第21章 曲面和正定性 481

21.1 正 定性 483

21.2 几何视角看正定性 485

21.3 开口朝上抛物面:正定 486

第22章 数据与统计 501

22.1 统计 + 线性代数:以鸢尾花数据为例 502

22.2 均值:线性代数视角 503

22.3 质心:均值排列成向量 505

22.4 中心化:平移 508

22.5 分类数据:加标签 510

22.6 方差:均值向量没有解释的部分 512

22.7 协方差和相关性系数 514

22.8 协方差矩阵和相关性系数矩阵 517

第23章 数据空间 523

23.1 从数据矩阵X说起 524

23.2 向量空间:从SVD分解角度理解 527

23.3 紧凑型SVD分解:剔除零空间 529

23.4 几何视角说空间 532

23.5 格拉姆矩阵:向量模、夹角余弦值的集合体 537

23.6 标准差向量:以数据质心为起点 540

23.7 白话说空间:以鸢尾花数据为例 543

第24章 数据分解 549

24.1 为什么要分解矩阵? 550

24.2 QR分解:获得正交系 555

24.3 Cholesky分解:找到列向量的坐标 557

24.4 特征值分解:获得行空间和零空间 559

24.5 SVD分解:获得四个空间 562

第25章 数据应用 567

25.1 从线性代数到机器学习 568

25.2 从随机变量的线性变换说起 572

25.3 单方向映射 574

25.4 线性回归 578

25.5 多方向映射 582

25.6 主成分分析 584



短评

矩阵力量:线性代数全彩图解+微课+Python编程 线性代数是现代数学的重要分支之一,它在各个领域都有广泛应用。从计算机科学到物理学、经济学和工程学等领域,线性代数都扮演着至关重要的角色。而矩阵作为线性代数中最基本的概念之一,更是无处不在。 然而,对于初学者来说,线性代数可能会显得十分抽象和难以理解。因此,我们推出了一套名为“矩阵力量”的教材,旨在帮助读者轻松掌握线性代数的核心概念,并通过 Python 编程实践加深理解。 该教材包括三部分内容: 第一部分是全彩图解,通过生动形象的图片和简洁明了的文字,将线性代数中的概念和定理呈现给读者。例如,矩阵乘法、行列式、特征值与特征向量等内容都被详细讲解。这样的图文结合方式可以使读者更好地理解和记忆知识点。 第二部分是微课视频,由资深教师录制,涵盖了线性代数的核心内容。通过视频,读者可以更加深入地理解和掌握知识点,并且可以随时暂停、回放,方便自己的学习进度。 第三部分是 Python 编程实践,通过编写代码来应用所学的线性代数知识。Python 是一种易于上手的编程语言,而且在科学计算领域有着广泛的应用。通过编写代码,读者可以将抽象的概念转化为具体的操作,从而更好地理解和运用线性代数知识。 总之,“矩阵力量”教材旨在帮助初学者轻松掌握线性代数的核心概念,并通过 Python 编程实践加深理解。如果你对线性代数感兴趣,或者想要提高自己的科学计算能力,那么这套教材绝对不容错过!

2023-06-03 10:11:33

产品特色