轉自:https://blog.csdn.net/fuming2021118535/article/details/51339881
在剛開始學的特征值和特征向量的時候只是知道了定義和式子,並沒有理解其內在的含義和應用,這段時間整理了相關的內容,跟大家分享一下;
首先我們先把特征值和特征向量的定義復習一下:
定義: 設A是n階矩陣,如果數λ和n維非零向量x使關系式
……(1)
成立,那么,這樣的數λ稱為矩陣A的特征值,非零向量x稱為A的對應於特征值λ的特征向量,(1)式還可以寫為:
……(2)
如果想求出矩陣對應的特征值和特征向量就是求式(2)的解了。
那么,問題來了,這個式子要怎么理解呢?
首先得先弄清矩陣的概念:一個矩陣代表的是一個線性變換規則,而一個矩陣的乘法運行代表的是一個變換;
比如有一個矩陣A:

一個列向量為X為:

一個矩陣的乘法為:

向量X通過矩陣A這個變化規則就可以變換為向量Y了

在幾何上的變換就類似於這樣:

知道了這個就可以從幾何上理解特征值和特征向量是什么意思了,由

可知:

所以,確定了特征值之后,向量x的變換為:

引用《線性代數的幾何意義》的描述:“矩陣乘法對應了一個變換,是把任意一個向量變成另一個方向或長度都大多不同的新向量。在這個變換的過程中,原向量主要發生旋轉、伸縮的變化。如果矩陣對某一個向量或某些向量只發生伸縮變換,不對這些向量產生旋轉的效果,那么這些向量就稱為這個矩陣的特征向量,伸縮的比例就是特征值。”
那么這樣定義的特征值和特征向量有什么實際用途呢?在這里我舉個數據挖掘算法中重要的一個算法:PCA(主成分分析)來給大家直觀的感受一下。
首先,理解一下信息量這個概念
看幾張圖:

如果我們單獨看某一個維度的話,比如看x1這個維度

可以看到將點投影到x1這個維度上看的話,圖1的數據離散性最高,圖3較低,圖2數據離散性是最低的。數據離散性越大,代表數據在所投影的維度上具有越高的區分度,這個區分度就是信息量。如果我們用方差來形容數據的離散性的話,就是數據方差越大,表示數據的區分度越高,也就是蘊含的信息量是越大的。
基於這個知識,如果我們想對數據進行降維的話,比如圖1的兩個維度的數據降成一維,我們可以選擇保留X1這個維度的數據,因為在這個維度上蘊含的信息量更多。
同理,圖2就可以保留x2這個維度的數據。但是,問題來了,圖3應該保留哪個維度的數據呢?答案是保留哪個維度都不好,都會丟失較大的信息量。但是,如果我們把圖3的坐標軸旋轉一下

比較容易看出,圖3在新的坐標軸下就能進行降維了。所以選取正確的坐標軸,然后根據各個維度上的數據方差大小,決定保留哪些維度的數據,這樣的做法就是主成分分析的核心思想。
選取正確的坐標軸的過程中,我們需要一個矩陣變換,就類似於這樣:

也就是:

其實,經過數學上的推導的,我們就可以知道,特征值對應的特征向量就是理想中想取得正確的坐標軸,而特征值就等於數據在旋轉之后的坐標上對應維度上的方差。
也就是說,直接求出矩陣A的特征向量得出對應的特征向量。我們就能找到旋轉后正確的坐標軸。這個就是特征值和特征向量的一個實際應用:“得出使數據在各個維度區分度達到最大的坐標軸。”
所以,在數據挖掘中,就會直接用特征值來描述對應特征向量方向上包含的信息量,而某一特征值除以所有特征值的和的值就為:該特征向量的方差貢獻率(方差貢獻率代表了該維度下蘊含的信息量的比例)。
通常經過特征向量變換下的數據被稱為變量的主成分,當前m個主成分累計的方差貢獻率達到一個較高的百分數(如85%以上)的話,就保留着這m個主成分的數據。實現了對數據進行降維的目的。整個主成分分析的算法原理也就是這個。
