R語言數據分析與挖掘(第六章):主成分分析(1)——主成分分析概論

  • 2019 年 12 月 16 日
  • 筆記

1.主成分分析

在許多領域的研究與應用中,往往需要對反映事物的多個變數進行大量的觀測,收集大量數據以便進行分析尋找規律。多變數大樣本無疑會為研究和應用提供了豐富的資訊,但也在一定程度上增加了數據採集的工作量,更重要的是在多數情況下,許多變數之間可能存在相關性,從而增加了問題分析的複雜性,同時對分析帶來不便。如果分別對每個指標進行分析,分析往往是孤立的,而不是綜合的。盲目減少指標會損失很多資訊,容易產生錯誤的結論。

因此需要找到一個合理的方法,在減少需要分析的指標同時,盡量減少原指標包含資訊的損失,以達到對所收集數據進行全面分析的目的。由於各變數間存在一定的相關關係,因此有可能用較少的綜合指標分別綜合存在於各變數中的各類資訊。主成分分析與因子分析就屬於這類降維的方法。

主成分分析是設法將原來眾多具有一定相關性(比如P個指標),重新組合成一組新的互相無關的綜合指標來代替原來的指標。

主成分分析,是考察多個變數間相關性一種多元統計方法,研究如何通過少數幾個主成分來揭示多個變數間的內部結構,即從原始變數中導出少數幾個主成分,使它們儘可能多地保留原始變數的資訊,且彼此間互不相關.通常數學上的處理就是將原來P個指標作線性組合,作為新的綜合指標。

最經典的做法就是用F1(選取的第一個線性組合,即第一個綜合指標)的方差來表達,即Var(F1)越大,表示F1包含的資訊越多。因此在所有的線性組合中選取的F1應該是方差最大的,故稱F1為第一主成分。如果第一主成分不足以代表原來P個指標的資訊,再考慮選取F2即選第二個線性組合,為了有效地反映原來資訊,F1已有的資訊就不需要再出現在F2中,用數學語言表達就是要求Cov(F1, F2)=0,則稱F2為第二主成分,依此類推可以構造出第三、第四,……,第P個主成分。

2. 問題描述

下表1是某些學生的語文、數學、物理、化學成績統計:

首先,假設這些科目成績不相關,也就是說某一科目考多少分與其他科目沒有關係。那麼一眼就能看出來,數學、物理、化學這三門課的成績構成了這組數據的主成分(很顯然,數學作為第一主成分,因為數學成績拉的最開)。為什麼一眼能看出來?因為坐標軸選對了!下面再看一組學生的數學、物理、化學、語文、歷史、英語成績統計,見表2,還能不能一眼看出來:

數據太多了,以至於看起來有些凌亂!也就是說,無法直接看出這組數據的主成分,因為在坐標系下這組數據分布的很散亂。究其原因,是因為無法撥開遮住肉眼的迷霧~如果把這些數據在相應的空間中表示出來,也許你就能換一個觀察角度找出主成分。如下圖1所示:

但是,對於更高維的數據,能想像其分布嗎?就算能描述分布,如何精確地找到這些主成分的軸?如何衡量你提取的主成分到底佔了整個數據的多少資訊?所以,我們就要用到主成分分析的處理方法。

3. 數據降維

為了說明什麼是數據的主成分,先從數據降維說起。數據降維是怎麼回事兒?假設三維空間中有一系列點,這些點分布在一個過原點的斜面上,如果你用自然坐標系x,y,z這三個軸來表示這組數據的話,需要使用三個維度,而事實上,這些點的分布僅僅是在一個二維的平面上,那麼,問題出在哪裡?

如果你再仔細想想,能不能把x,y,z坐標系旋轉一下,使數據所在平面與x,y平面重合?這就對了!如果把旋轉後的坐標系記為x』,y』,z』,那麼這組數據的表示只用x』和y』兩個維度表示即可!當然了,如果想恢復原來的表示方式,那就得把這兩個坐標之間的變換矩陣存下來。這樣就能把數據維度降下來了!

但是,我們要看到這個過程的本質,如果把這些數據按行或者按列排成一個矩陣,那麼這個矩陣的秩就是2!這些數據之間是有相關性的,這些數據構成的過原點的向量的最大線性無關組包含2個向量,這就是為什麼一開始就假設平面過原點的原因!

那麼如果平面不過原點呢?這就是數據中心化的緣故!將坐標原點平移到數據中心,這樣原本不相關的數據在這個新坐標系中就有相關性了!有趣的是,三點一定共面,也就是說三維空間中任意三點中心化後都是線性相關的,一般來講n維空間中的n個點一定能在一個n-1維子空間中分析!

上一段文字中,認為把數據降維後並沒有丟棄任何東西,因為這些數據在平面以外的第三個維度的分量都為0。現在,假設這些數據在z』軸有一個很小的抖動,那麼我們仍然用上述的二維表示這些數據,理由是我們可以認為這兩個軸的資訊是數據的主成分,而這些資訊對於我們的分析已經足夠了,z』軸上的抖動很有可能是雜訊,也就是說本來這組數據是有相關性的,雜訊的引入,導致了數據不完全相關,但是,這些數據在z』軸上的分布與原點構成的夾角非常小,也就是說在z』軸上有很大的相關性,綜合這些考慮,就可以認為數據在x』,y』 軸上的投影構成了數據的主成分!

課堂上老師談到的特徵選擇的問題,其實就是要剔除的特徵主要是和類標籤無關的特徵。而這裡的特徵很多是和類標籤有關的,但裡面存在雜訊或者冗餘。在這種情況下,需要一種特徵降維的方法來減少特徵數,減少噪音和冗餘,減少過度擬合的可能性。

PCA的思想是將n維特徵映射到k維上(k<n),這k維是全新的正交特徵。這k維特徵稱為主成分,是重新構造出來的k維特徵,而不是簡單地從n維特徵中去除其餘n-k維特徵。

下一講我們將通過實例來講解。