![机器学习数学基础](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=1739277821-9KnghOnT1AirpgkO6kqPTMx4U6kmmYHk-0-07cf9bb505c336a935295c2347a17a6b)
当然,也可以构建其他形式的解。
对于类似于和
这样的向量,我们称之为线性相关(Linear Correlation),与此对应的就是线性无关(Linear Independence)。
定义 设是一个向量组,如果有一组不全为
的数
,使得:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_208.jpg?sign=1739277821-lcrIzqhcZej9lImNR4PszpiH8jpvYQWT-0-1755224fa83375ead10f9abc658cb8b7)
那么称向量组是线性相关的。否则,称向量组
是线性无关的,即如果根据:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_211.jpg?sign=1739277821-RbU4zNTZTrvPh7qOpntbnFmJ2xy7cgAR-0-5078e30961a406558fd98ba27f98abc3)
得到,那么称向量组
是线性无关的。
例如,三维向量空间中的向量组:,若想使得这三个向量的线性组合等于
:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_216.jpg?sign=1739277821-lVrKGtlPxUWnT79Fpk5dHrBMZU1CFNF8-0-4c7b2caddd768e5c22aa76115a36fc49)
只能。因此,这三个向量线性无关。
根据线性无关的定义,可以推导出一些结论,此处列举几项:
● 如果向量组线性无关,则它的任意一部分向量也线性无关
● 如果向量组中有一部分向量线性相关,则此向量组线性相关
● 含有零向量的向量组,一定线性相关。
向量组中向量的线性相关或线性无关分析,是线性代数和机器学习中的重要内容。下面以前(1.2.2)式为例,通过分析由其所得到的线性相关的线性组合,进而完成方程组的求解。
由于,(1.2.2)式等号左边可以变化为:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_221.jpg?sign=1739277821-OAE1aQ2PBFXn5dlUEPIsfujp21srsqUl-0-4384045174347966ac82e811478fc10c)
令:,则有:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_223.jpg?sign=1739277821-hjjHDNGG4T9KNjz0OMLBCvTVhzbkc3mi-0-6c5ae6a68486554725052f67c66e6443)
也就是得到了一个与原线性方程组(1.2.1)式等效的线性方程组:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_224.jpg?sign=1739277821-WVI0okkjFRcSJoyO4wiHz2nCWuponLpz-0-ec62a734f8160fb398912ba342b274ca)
由此,解得:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_225.jpg?sign=1739277821-u4Nkfoer9hiG7ibljOfm45TCaR3oF7Mq-0-0af409c6e69a568242bf5ea20254530e)
又因为:,所以:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_227.jpg?sign=1739277821-KPMSTN5S8VzYL2xscS1SobScPr7oJUVc-0-5ffed939b38f11db8d8901f380a91317)
其中是自由变量,显然这个方程组有无数个解。
为了更直观地理解线性相关和线性无关,假设有两个向量和
,它们在一条直线上(即一维空间),不论它们的方向关系如何,总能写成
的形式,显然,这两个向量是线性相关的。
以上内容在一维空间中比较容易理解,如果在二维空间中就会稍显复杂了。
如图1-2-3所示,假设平面空间上有两个不共线的向量,这两个向量中的任何一个发生变化,都不会影响另外一个。或者说,当且仅当
时,才有
成立。所以它们是线性无关的。
如果适当调整这两个线性无关的向量的大小和它们之间的夹角,就可以合成平面中任何一个其他向量,也就是任何一个其他向量,都可以用这两个向量表示。所以在一个平面空间中,如果确定了两个线性无关的向量,则可以证明,任何第三个向量必然与它们线性相关(严格的证明过程,请参阅本书在线资料。关于在线资料的说明,请阅读前言),即。
为了简化表示,我们可以将已知的两个向量特殊化,即和
两个向量的长度都是
(即单位向量),且它们的夹角为
,并用新的符号标记:
。把向量的起点
作为长度的计数起点,标记为数字
,如图1-2-4所示。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_243.jpg?sign=1739277821-Y6mxdyV6rhJl21uZXMXv5QtW1wZfyHJg-0-176e4ad817f9de775dc47e795fc115f1)
图1-2-3
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_244.jpg?sign=1739277821-0dRZGQLiuyyXo1l5Jm7ZQPE8SEQ0NMQK-0-7db032e0a957f258d321dd06dedd7b3d)
图1-2-4
平面空间的任意一个向量本来可以用图1-2-4所示的向量
合成,即:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_247.jpg?sign=1739277821-KYeiB9rb57ASDgn5QV7zCf9o6bIXaVpH-0-1f959c807f5095cf105bafb0b7d48192)
根据前面的假设,的长度一定是单位向量
的
倍(
是一个实数),且方向与之相同,记作:
。同理,
。所以:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_254.jpg?sign=1739277821-g3rXmf1XibHcKY8WwR1dFCiLjW9Rwlmi-0-2ede47888c0d64d341a6440534017c2d)
根据1.1节所学,我们知道,单位向量可以分别表示为:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_256.jpg?sign=1739277821-5zieyF0ApMCl97X1dFuwrS22PbaDw1T0-0-684696ed7471052258aad80841f5d282)
所以,也可将写成:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_258.jpg?sign=1739277821-R8dpuoRxru2fl7mxgH5NVxZQfmzsosmI-0-13041fa435505c1e16e777634eb5446f)
将上述过程总结一下,我们从“平面上两个不在同一条直线上的向量线性无关”开始,然后用这两个向量表示任何第三个向量,最后将这两个向量特殊化(用单位向量表示),进而得到了我们熟悉的东西——笛卡儿坐标系(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=1739277821-6V0CzdD3lPa2WjyP2zpVf9MHpH68O5cP-0-44649fb3c75b562e4b2db884cc8a2b80)
图1-2-5
1.1.1节曾提到过,对于Pandas的DataFrame对象,每一列可以看成一个向量。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_265.jpg?sign=1739277821-vnziLOCewXeSoCn9jk1dT9JkqkgMTnC8-0-f562db38b575898906df7c6793e572d2)
有数据集df,其中的特征target表示每个样本(每一行)的分类标签,假设用这个数据集训练一个分类模型(注意,这里只是为了说明问题而假设,不是实际情况,因为数据集太小了),上面的数据中显示了三个特征A、B、C,这三个特征是否可以作为训练模型的自变量呢?
三个特征,相当于三个向量,并且有:
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_266.jpg?sign=1739277821-ifaJDhkgAfzSZb3ofcu6Y4ZvygMZoFG8-0-47a061df25a929d0c3771677e5c0ae58)
这三个特征(向量)线性相关,如果想象一种极端情况,三个特征的值都一样,也是线性相关的。所以,这时貌似是三个特征,实则就一个,任何两个特征的线性组合就是第三个。那么,在这样的数据集中,我们只需要选其中任何一个作为自变量即可。
除此之外,在数据集中,还会有一种情况,也需要慎重选择特征。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_267.jpg?sign=1739277821-mC0lBeEdRg2hPjxijl1sK5ydSFO74HKv-0-a994894f096126074e88215ef7f21925)
上述操作中加载了泰坦尼克号的数据集,用df_parts.head()显示了部分特征的前5个样本,并以df_parts.info()得到了每个特征的类型。从输出结果中可知,特征Sex不是数字,因此如果要将这个数据集作为某个机器学习模型的训练集,就必须对这个特征进行变换,通常要对它进行OneHot编码(参阅《数据准备和特征工程》一书),如以下程序所示。
![](https://epubservercos.yuewen.com/39156C/23020656909779806/epubprivate/OEBPS/Images/txt001_268.jpg?sign=1739277821-oY2MDF9u7kAimTljjNVTEuv5TVYgwCzz-0-05b7b6067528e60ad52dbc689063c496)
此处的输出结果实现了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=1739277821-tXfHrSOWepTjaDlRgF7mCx0kPvuWqWFw-0-d19e87b86f28d706c29371bac3bebd2a)
在机器学习中,像上面那样对特征进行选择和变换,是必不可少的,推荐参阅拙作《数据准备和特征工程》(电子工业出版社)。