机器学习数学基础之线代篇——线性代数python手册(建议收藏)

提到线性代数,又不得不吐槽国内教材了,学起来真的是实力劝退。有多少跟着国内教材学完线性代数课程后,知道线性代数是什么,它到底是干什么的?

事实上如果你后面想做科研、想研究机器学习、深度学习,你会发现处处是线性代数。这么抽象又重要的课程,一本书里基本看不到几张图,就好比是没有注释的代码,大概以为我的脑子就是记公式的机器吧…

如果你还未开始学习线性代数,那么强烈建议你把学校发的紫色教材放在一边,找几本国外的线性代数教材看看。然后在B站里搜一下麻省理工公开课Gilbert Strang老爷子的线性代数视频,相信你会打开新世界的大门(文末有彩蛋)——


吐槽就到这,我们先来看一个涉及线性代数本质问题的式子:
y = A x y=Ax y=Ax
可以说,线性代数的很多问题都是从这个式子出发的。那么在线性代数中,如何理解这个式子呢?

直观上看,这个式子跟我们熟悉的一次函数 y = kx比较像。对于y=kx,我们可以理解为将标量x经过 某种线性变换,得到另一个标量y。

这里,我们把x和y换成向量,对于y = Ax,我们可以理解为将矩阵A(线性变换)作用于向量x ,得到另一个向量y。

由于向量就是空间中的一个点,这个种线性变换的作用就是将空间中的一个点变为空间中的另一个点。

对于函数y=kx,如果我们知道y和k,就能够求解出x。对于y=Ax也一样,如果y和A已知,我们同样可以求出x,这就是求解线性方程组的问题了。

其他知识点都是从这些基本的概念衍生出来的,这里就不一一列举了。任何新知识都不是凭空出来的,都是建立在以前的理论基础之上。在学习数学的时候,可以多联系以前的知识,类比着学习。


线性代数概念较多,计划在另一篇总结基本概念,这里仅总结线性代数里一些重要概念的python程序。

1 矩阵基本操作

注:向量操作与矩阵类似。

1.1 创建矩阵

(1)通过列表创建矩阵

#通过列表创建矩阵
import numpy as np
m = [[1,2,3],[4,5,6],[7,8,9]]  
a1 = np.array(m)
print("a1:",a1)
print("a1的大小:" ,a1.shape)
print("a1的类型:",type(a1))

(2)通过元组创建矩阵

#通过元组创建矩阵
t = ((1,2,3),(4,5,6),(7,8,9)) 
a2 = np.array(t)
print("a2:",t)
print("a2的大小:" ,a2.shape)
print("a2的类型:",type(a2))

(3)使用random()和randint()函数

random()函数随机生成矩阵中指定范围的浮点数:

import numpy as np
a1 = np.random.random((3,4))  #3×4阶,取值范围为0~1
print(a1)

randint()函数随机生成矩阵中指定范围的整数:

a2 = np.random.randint(1,10,size=[3,4])  #3×4阶,取值范围为1~10(不包括10)
print(a2)

1.2 改变矩阵的大小

import numpy as np
m = [1,2,3,4,5,6,7,8,9,10,11,12]
a = np.array(m)
a1 = a.reshape(3,4)
a2 = a.reshape(4,3)
print("原矩阵a: \n",a)
print("转换为3行4列矩阵a1:\n",a1)
print("转换为4行3列矩阵a2:\n",a2)

1.3 获取矩阵元素

print("a2的第0行元素a2[0]: \n",a2[0])
print("a2的前2行元素a2[0:2]: \n",a2[0:2])
print("a2的第0行和第2行元素a2[[0,2]]: \n",a2[[0,2]])
print("a2的第0列元素a2[:,1]: \n",a2[:,1])
print("a2的前2行元素a2[:,0:2]: \n",a2[:,0:2])
print("a2的第0列和第2列元素a2[:,[0,2]]: \n",a2[:,[0,2]])
print("a2的第2行第2列元素a2[2,2]: \n",a2[2,2])

1.4 特殊矩阵生成

(1)单位矩阵

import numpy as np
e1 = np.eye(5)
e2 = np.identity(5)
print("通过eye()创建五阶单位矩阵e1: \n",e1)
print("通过identity()创建五阶单位矩阵e2: \n",e2)

(2)零矩阵

import numpy as np
a = np.zeros((3,4))  
print("3×4阶零矩阵a: \n",a
  • 15
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
机器学习线性代数基础》是一本介绍机器学习线性代数基础知识的PDF,内容丰富且易于理解。 线性代数机器学习中必不可少的基础知识之一。它提供了描述和处理向量、矩阵以及线性方程组的工具和方法。《机器学习线性代数基础》这本PDF详细介绍了线性代数的相关概念和方法,并结合机器学习的应用场景进行说明和实践。 PDF的内容主要包括以下几个方面: 1. 向量和矩阵的基本概念和运算:介绍了向量和矩阵的定义、加法、乘法等基本运算,以及线性相关性的判定等内容。 2. 矩阵的分解:介绍了特征值和特征向量、奇异值分解等矩阵的分解方法,以及它们在机器学习中的应用。 3. 线性变换和线性方程组:讲解了线性变换和线性方程组的相关概念和求解方法,以及它们在机器学习中的应用。 4. 向量空间和基底:介绍了向量空间的概念、基底和维数的定义,以及它们在机器学习中的应用。 5. 线性代数机器学习中的应用:通过实际的机器学习案例,展示线性代数在特征选择、降维、回归分析等问题中的应用。 这本PDF适合初学者和对线性代数机器学习感兴趣的人阅读。通过学习《机器学习线性代数基础》,可以帮助读者建立起对线性代数的基本理解和应用能力,并为进一步深入学习机器学习打下坚实的数学基础。总而言之,这本PDF是学习机器学习线性代数的一本很好的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值