![机器学习数学基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/482/43738482/b_43738482.jpg)
1.2.3 线性无关
继续使用(1.2.2)式,在重大发现的基础上,就不难为方程组(1.2.1)式构建一组解了(注意,不是用什么方法解出来了,是直接“看”出来的,完全凭经验),比如,即得到了:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_202.jpg?sign=1739173682-M9QZXtRErGdcWTFjgscF5g3N06U6rRlr-0-5028a830b5a1fb1723f454ea44dbd561)
当然,也可以构建其他形式的解。
对于类似于和
这样的向量,我们称之为线性相关(Linear Correlation),与此对应的就是线性无关(Linear Independence)。
定义 设是一个向量组,如果有一组不全为
的数
,使得:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_208.jpg?sign=1739173682-VvFBMWpFtaVsA8CLSz88plwiasIUdHPr-0-4e5a3ba454a19208e723a454ae6d3d59)
那么称向量组是线性相关的。否则,称向量组
是线性无关的,即如果根据:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_211.jpg?sign=1739173682-gRtxTrg73oCS2ZbkrlAstfnCZGp9KAhr-0-ab5157ade5ae5ce8d1f5a6f731ee9b08)
得到,那么称向量组
是线性无关的。
例如,三维向量空间中的向量组:,若想使得这三个向量的线性组合等于
:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_216.jpg?sign=1739173682-JxRnBP9rAHeBAIwqvotpEe8BRLrtAQpo-0-68770dd361781616e37652eae6435f55)
只能。因此,这三个向量线性无关。
根据线性无关的定义,可以推导出一些结论,此处列举几项:
● 如果向量组线性无关,则它的任意一部分向量也线性无关
● 如果向量组中有一部分向量线性相关,则此向量组线性相关
● 含有零向量的向量组,一定线性相关。
向量组中向量的线性相关或线性无关分析,是线性代数和机器学习中的重要内容。下面以前(1.2.2)式为例,通过分析由其所得到的线性相关的线性组合,进而完成方程组的求解。
由于,(1.2.2)式等号左边可以变化为:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_221.jpg?sign=1739173682-B8ZTvVDDlGqoMxm3clrhEaiyd8XeWiVz-0-c310f2d2000ca41b3ce1c41312e392e9)
令:,则有:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_223.jpg?sign=1739173682-9eFMUet90sVBoC80auiWXdiQFo8b3jhL-0-844969178cca480fd85ae801d2a56128)
也就是得到了一个与原线性方程组(1.2.1)式等效的线性方程组:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_224.jpg?sign=1739173682-DjaEINghu7njfwSiXvhctJN3sAij3Dq5-0-43b6ffe59bc1e1ef7e33495e48477ee4)
由此,解得:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_225.jpg?sign=1739173682-vC4c9moAaUrgFlw1MBlO7StHSGdC82Lk-0-9a5a9a1d3f6653fb54bf0d90a148a231)
又因为:,所以:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_227.jpg?sign=1739173682-K3G381hYTRM6MfdbsYRIylTc4tNGUAo7-0-43ecb9045a5158e7531b28df5f0380cf)
其中是自由变量,显然这个方程组有无数个解。
为了更直观地理解线性相关和线性无关,假设有两个向量和
,它们在一条直线上(即一维空间),不论它们的方向关系如何,总能写成
的形式,显然,这两个向量是线性相关的。
以上内容在一维空间中比较容易理解,如果在二维空间中就会稍显复杂了。
如图1-2-3所示,假设平面空间上有两个不共线的向量,这两个向量中的任何一个发生变化,都不会影响另外一个。或者说,当且仅当
时,才有
成立。所以它们是线性无关的。
如果适当调整这两个线性无关的向量的大小和它们之间的夹角,就可以合成平面中任何一个其他向量,也就是任何一个其他向量,都可以用这两个向量表示。所以在一个平面空间中,如果确定了两个线性无关的向量,则可以证明,任何第三个向量必然与它们线性相关(严格的证明过程,请参阅本书在线资料。关于在线资料的说明,请阅读前言),即。
为了简化表示,我们可以将已知的两个向量特殊化,即和
两个向量的长度都是
(即单位向量),且它们的夹角为
,并用新的符号标记:
。把向量的起点
作为长度的计数起点,标记为数字
,如图1-2-4所示。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_243.jpg?sign=1739173682-7OhKQYLuWTvFGz1TFkAdEQ1XmwWZ98cY-0-a1e3cce9df76f72ad19ae23a366672c4)
图1-2-3
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_244.jpg?sign=1739173682-pTtbrVISpzOJR30QF9jF3g8GOBAe6znQ-0-72aca5e7c5a7286884aa7d85bbce435d)
图1-2-4
平面空间的任意一个向量本来可以用图1-2-4所示的向量
合成,即:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_247.jpg?sign=1739173682-qIAMsT5wZEaN1zHVdnE4tQln7jJDzCi7-0-b457fc873c4233bc98228ba1d227a0c2)
根据前面的假设,的长度一定是单位向量
的
倍(
是一个实数),且方向与之相同,记作:
。同理,
。所以:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_254.jpg?sign=1739173682-5bRKClJExMVtT0Tu5myRU4aDiHHMxD4e-0-9e5b7d48e2e84964837b78f853cf05c1)
根据1.1节所学,我们知道,单位向量可以分别表示为:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_256.jpg?sign=1739173682-lQsNkaVSaM0ErfA90UfmFtG9T0FgGq6C-0-3b2009564b879e845dbff4d51eb79ab9)
所以,也可将写成:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_258.jpg?sign=1739173682-C6iek1s77SCKZ8dDSfJpy3hhubyoecsX-0-280bf595e62a091b38b17fb645930e69)
将上述过程总结一下,我们从“平面上两个不在同一条直线上的向量线性无关”开始,然后用这两个向量表示任何第三个向量,最后将这两个向量特殊化(用单位向量表示),进而得到了我们熟悉的东西——笛卡儿坐标系(Cartesian Coordinate System)。现在复习1.1.1节中描述向量的方法,是不是就理解其缘由了呢?如果再结合1.3节的阐述,则更能深入领悟。
同样的思路,可以延伸到三维空间或者更高维的空间。
如果用不完全归纳法,则我们会发现,维空间中有
个线性无关的向量,用它们可以表征任意第
个向量。并且,为了方便,我们还使用笛卡儿坐标系,
维空间中的笛卡儿坐标系有
个单位向量,用这些单位向量可以表征此空间中任何一个向量。我想,应该首先向伟大的数学家、哲学家笛卡儿(法语名:René Descartes,拉丁语名:Renatus Cartesius,肖像如图1-2-5所示)致敬,他于1637年发表了巨著《方法论》,并在其附录“几何”中阐述了如今的笛卡儿坐标系。伟大的笛卡儿的这项发明,将代数与欧几里得几何结合了起来,并影响了其他数学分支和其他科学。笛卡儿在文科生里也有很高的声望,就是因为那句“我思故我在”,很多人为理解这句模模糊糊的话费尽周折,甚至于口诛笔伐。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_264.jpg?sign=1739173682-yJIPLwB9UQ1OD0m4wmsiFc9ggdbYFQ2x-0-b48dab24e96be46031adce4b5b6f01c2)
图1-2-5
1.1.1节曾提到过,对于Pandas的DataFrame对象,每一列可以看成一个向量。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_265.jpg?sign=1739173682-xPo08XsXSfbEPyZdAaZ5IdnNMxtYVT82-0-0020bb226a8bc94f1535f08b80f3e0c5)
有数据集df,其中的特征target表示每个样本(每一行)的分类标签,假设用这个数据集训练一个分类模型(注意,这里只是为了说明问题而假设,不是实际情况,因为数据集太小了),上面的数据中显示了三个特征A、B、C,这三个特征是否可以作为训练模型的自变量呢?
三个特征,相当于三个向量,并且有:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_266.jpg?sign=1739173682-cBBES7MRL6QTqyjCnkUOojboVntdxsxF-0-6e0c3867da2bfd73b8ef26e5eaa12e39)
这三个特征(向量)线性相关,如果想象一种极端情况,三个特征的值都一样,也是线性相关的。所以,这时貌似是三个特征,实则就一个,任何两个特征的线性组合就是第三个。那么,在这样的数据集中,我们只需要选其中任何一个作为自变量即可。
除此之外,在数据集中,还会有一种情况,也需要慎重选择特征。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_267.jpg?sign=1739173682-Du9rpNlR5zlLwwQPCkVh0H6UXGg4FYh6-0-c1ec2a2702a2c9be3c86b793498b0141)
上述操作中加载了泰坦尼克号的数据集,用df_parts.head()显示了部分特征的前5个样本,并以df_parts.info()得到了每个特征的类型。从输出结果中可知,特征Sex不是数字,因此如果要将这个数据集作为某个机器学习模型的训练集,就必须对这个特征进行变换,通常要对它进行OneHot编码(参阅《数据准备和特征工程》一书),如以下程序所示。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_268.jpg?sign=1739173682-kpMy4W214Znt7uffc58AvubmeazXqsNE-0-bb99803a2d7a975c65dd40697e78b030)
此处的输出结果实现了OneHot编码,如果将特征Sex_femal和Sex_male分别看作两个向量,仅取上面所显示的,即向量和
(此处用行向量的转置表示,关于转置,请参阅2.3.2节),虽然它们线性无关,但是,对于每一个人而言,一般情况下,我们不需要说“他的性别是男,并且不是女”(即Sex_female=1且Sex_male=0),只需要说“他的性别是男”(即Sex_female=1)就已经把性别描述清楚了,另外一个特征则是冗余的。所以,可以删除一个。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_271.jpg?sign=1739173682-c1oXqzdSQfHG7uvHuhD9eoU1ci0BbC9F-0-427ae13ab06ad83cdad1736a28745dcb)
在机器学习中,像上面那样对特征进行选择和变换,是必不可少的,推荐参阅拙作《数据准备和特征工程》(电子工业出版社)。