在資料科學領域,處理高維資料是常見的挑戰。主成分分析(PCA)是一種有效的降維技術,它透過線性變換將原始資料投影到新的低維空間,同時盡可能保留資料的變異性。這個過程涉及到資料標準化、計算協方差矩陣、特徵值分解以及選擇主要成分等關鍵步驟。

PCA 的核心概念在於找到資料中變異最大的方向,這些方向稱為主要成分。每個主要成分都是原始變數的線性組合,彼此正交,代表了資料變異的不同導向。透過選擇前 k 個主要成分,我們可以將高維資料投影到 k 維空間,從而降低資料的複雜度,並去除冗餘資訊。在實際應用中,PCA 常被用於影像壓縮、特徵選擇、資料視覺化等領域,例如在生物資訊學中分析基因表達資料,或在金融領域分析股票價格走勢。透過 PCA,我們可以更有效率地處理和分析高維資料,並提取出最重要的資訊。

主要成分分析的應用

在上一節中,我們探討瞭如何使用主要成分分析(PCA)來簡化二維資料。現在,我們將這個概念推廣到多維資料。

多維資料的主要成分分析

假設我們有 $p$ 個原始變數,分別為 $X_1, X_2, \ldots, X_p$。我們的目標是找到一組新的變數 $Z_1, Z_2, \ldots, Z_p$,使得它們能夠捕捉原始資料的主要變異性。

步驟 1:標準化原始資料

首先,我們需要標準化原始資料,以便所有變數具有相同的尺度。這可以透過從每個變數中減去其均值並除以其標準差來實作。

步驟 2:計算協方差矩陣

接下來,我們計算原始變數的協方差矩陣 $\Sigma$。協方差矩陣描述了變數之間的相關性。

步驟 3:計算特徵值和特徵向量

然後,我們計算協方差矩陣的特徵值和特徵向量。特徵值代表了新的變數所捕捉的變異性,而特徵向量則代表了新的變數的方向。

步驟 4:選擇主要成分

根據特徵值的大小,我們選擇出能夠捕捉最多變異性的前 $k$ 個主要成分。這些主要成分將被用來表示原始資料。

主要成分分析的優點

主要成分分析具有以下優點:

  • 簡化資料:透過選擇少數主要成分,可以簡化高維資料。
  • 去除冗餘資訊:主要成分分析可以去除原始變數之間的冗餘資訊。
  • 保留主要變異性:主要成分分析可以保留原始資料的主要變異性。

實際應用

主要成分分析在各個領域都有廣泛的應用,例如:

  • 影像壓縮:主要成分分析可以用於壓縮影像資料。
  • 檔案聚類別:主要成分分析可以用於檔案聚類別。
  • 生物資訊學:主要成分分析可以用於分析基因表達資料。
內容解密:

在上述內容中,我們探討瞭如何使用主要成分分析來簡化多維資料。首先,我們需要標準化原始資料,以便所有變數具有相同的尺度。然後,我們計算原始變數的協方差矩陣,並計算其特徵值和特徵向量。根據特徵值的大小,我們選擇出能夠捕捉最多變異性的前 $k$ 個主要成分。這些主要成分將被用來表示原始資料。

圖表翻譯:

  graph LR
    A[原始資料] --> B[標準化]
    B --> C[計算協方差矩陣]
    C --> D[計算特徵值和特徵向量]
    D --> E[選擇主要成分]
    E --> F[簡化資料]

在上述圖表中,我們展示了主要成分分析的步驟。首先,我們需要標準化原始資料。然後,我們計算原始變數的協方差矩陣,並計算其特徵值和特徵向量。根據特徵值的大小,我們選擇出能夠捕捉最多變異性的前 $k$ 個主要成分。這些主要成分將被用來表示原始資料。

主題標題:主成分分析(PCA)在資料降維中的應用

段落標題:什麼是主成分分析(PCA)?

主成分分析(Principal Component Analysis, PCA)是一種常用的統計方法,用於降低高維度資料的維度,同時保留原始資料的最重要特徵。PCA 的基本思想是將原始變數轉換為新的變數,這些新的變數是原始變數的加權平均,且彼此之間無相關性。

段落標題:PCA 的計算過程

給定一組高維度資料,PCA 的計算過程可以概括如下:

  1. 將原始變數進行標準化,減去均值,除以標準差。
  2. 計算原始變數的協方差矩陣。
  3. 對協方差矩陣進行特徵值分解,得到特徵值和特徵向量。
  4. 選擇前 k 個特徵值最大的特徵向量,作為新的變數。

內容解密:PCA 的計算過程

import numpy as np

# 標準化原始變數
def standardize(X):
    mean = np.mean(X, axis=0)
    std = np.std(X, axis=0)
    return (X - mean) / std

# 計算協方差矩陣
def cov_matrix(X):
    return np.cov(X.T)

# 特徵值分解
def eigen_decomposition(cov_matrix):
    eigen_values, eigen_vectors = np.linalg.eig(cov_matrix)
    return eigen_values, eigen_vectors

# 選擇前 k 個特徵值最大的特徵向量
def select_eigen_vectors(eigen_values, eigen_vectors, k):
    idx = np.argsort(eigen_values)[::-1][:k]
    return eigen_vectors[:, idx]

# PCA 的計算過程
def pca(X, k):
    X_std = standardize(X)
    cov_matrix = cov_matrix(X_std)
    eigen_values, eigen_vectors = eigen_decomposition(cov_matrix)
    eigen_vectors = select_eigen_vectors(eigen_values, eigen_vectors, k)
    return np.dot(X_std, eigen_vectors)

段落標題:PCA 的優點

PCA 有以下幾個優點:

  1. 降低維度:PCA 可以將高維度資料降低到低維度,減少資料的複雜性。
  2. 保留重要特徵:PCA 可以保留原始資料的最重要特徵,同時去除噪音和冗餘資訊。
  3. 提高計算效率:PCA 可以提高計算效率,因為降低維度後的資料需要的計算資源更少。

圖表翻譯:PCA 的流程圖

  graph LR
    A[原始資料] --> B[標準化]
    B --> C[協方差矩陣]
    C --> D[特徵值分解]
    D --> E[選擇前 k 個特徵值最大的特徵向量]
    E --> F[新的變數]

段落標題:PCA 的應用

PCA 有很多實際應用,例如:

  1. 資料視覺化:PCA 可以將高維度資料降低到二維或三維,方便視覺化。
  2. 資料壓縮:PCA 可以將高維度資料壓縮到低維度,減少儲存空間。
  3. 特徵選擇:PCA 可以選擇出最重要的特徵,提高模型的準確性。

內容解密:PCA 的應用

# 資料視覺化
import matplotlib.pyplot as plt

# 將高維度資料降低到二維
X_pca = pca(X, 2)

# 繪製二維資料
plt.scatter(X_pca[:, 0], X_pca[:, 1])
plt.show()

主要成分分析(PCA)在早餐麥片資料集上的應用

在資料分析中,主要成分分析(PCA)是一種強大的技術,用於降低高維資料的維度,並提取最重要的特徵。這篇文章將介紹如何使用PCA對早餐麥片資料集進行分析,並探討其結果。

資料集介紹

早餐麥片資料集包含13個數值變數,描述了不同早餐麥片的營養成分。這些變數包括鈉、鉀、纖維等營養素的含量。

PCA結果

使用PCA對所有13個數值變數進行分析,得到以下結果:

主要成分特徵值方差百分比累積方差百分比
17016.4253.95%53.95%
25028.8338.67%92.62%
3512.743.94%96.56%

結果顯示,前三個主要成分就能夠解釋超過96%的總變異數,這意味著我們可以使用少於25%的原始維度來捕捉大部分的資料變異性。事實上,前兩個主要成分就能夠解釋92.6%的總變異數。

結果解釋

對結果進行解釋,發現第一個主要成分主要反映了鈉的含量,而第二個主要成分則反映了鉀的含量。這是因為鈉和鉀的測量單位是毫克,而其他營養素的測量單位是克拉。這種尺度差異導致了這種結果。

標準化資料

另一種使用PCA的方法是理解資料的結構。這可以透過標準化資料來實作。在本例中,很明顯第一個主要成分是由鈉主導的,因為它具有最高的權重。同樣,第二個主要成分似乎是在衡量鉀的含量。

內容解密:

上述PCA結果表明,前三個主要成分能夠捕捉大部分的資料變異性,這意味著我們可以使用少於原始維度的25%來描述資料。這對於降低資料維度和提取最重要特徵具有重要意義。

圖表翻譯:

圖4.9展示了使用所有13個數值變數進行PCA的結果。圖中顯示了每個主要成分的特徵值和方差百分比。從圖中可以看出,前三個主要成分佔據了超過96%的總變異數,這意味著我們可以使用少於原始維度的25%來捕捉大部分的資料變異性。

主題標題:PCA與資料標準化

段落標題:資料標準化的重要性

在進行主成分分析(PCA)時,資料的尺度和單位可能會對結果產生重大影響。尤其是當變數的尺度差異很大時,例如某些變數的變異數遠大於其他變數,可能會導致PCA的結果被某些變數所主導。為瞭解決這個問題,資料標準化(或稱為資料正規化)是一種常用的方法。

段落標題:資料標準化的方法

資料標準化的基本思想是將原始變數轉換為新的變數,使得所有變數具有相同的尺度和單位。這可以透過將每個原始變數除以其標準差來實作。這樣做的效果是給所有變數同等的重要性,從而避免某些變數對PCA結果的主導作用。

段落標題:何時應該進行資料標準化

是否應該進行資料標準化取決於資料的性質。如果所有變數具有相同的單位且其尺度反映了其重要性,那麼可能不需要進行標準化。然而,如果變數具有不同的單位,或者尺度不能反映重要性,那麼標準化通常是必要的。透過標準化,可以確保單位的變化不會影響主成分的權重。

內容解密:資料標準化的實際應用

在實際應用中,資料標準化可以透過以下步驟實作: 1.計算每個變數的均值和標準差。 2.將每個原始變數減去其均值,再除以其標準差。 這樣就可以得到標準化後的新變數,所有變數都具有相同的尺度和單位。

段落標題:PCA在ASDM中的應用

在ASDM中,對於標準化變數進行PCA可以透過兩種方式實作: 1.先對變數進行標準化,然後再進行PCA。 2.直接對原始未標準化變數進行PCA,並選擇使用相關矩陣(即標準化變數)的方法。 注意,ASDM預設使用相關矩陣,即自動標準化變數。

圖表翻譯:PCA過程視覺化

  flowchart TD
    A[原始資料] --> B[標準化]
    B --> C[PCA]
    C --> D[主成分提取]
    D --> E[結果分析]

這個流程圖展示了從原始資料到PCA結果分析的整個過程,包括標準化和主成分提取等步驟。

段落標題:案例研究

以早餐麥片資料為例,由於變數的尺度差異較大,因此需要進行標準化。標準化後,再進行PCA,可以得到更合理的結果。結果表明,需要七個主成分才能解釋大部分的變異數。主成分矩陣顯示了每個變數在各個主成分中的權重,可以用於進一步分析和解釋。

內容解密:主成分矩陣分析

主成分矩陣中的每個元素代表了原始變數在相應主成分中的權重。透過分析這些權重,可以瞭解不同變數之間的關係以及它們如何貢獻於每個主成分。這對於理解資料結構和識別模式具有重要意義。

主要成分分析(PCA)在資料降維中的應用

在進行資料分析時,往往會遇到高維度的資料,這些資料可能包含許多變數,而這些變數之間可能存在一定的相關性。為了更好地理解資料的結構和模式,資料降維技術被廣泛應用。其中,主要成分分析(Principal Component Analysis, PCA)是一種常用的資料降維方法。

PCA 的基本原理

PCA 的目的是將原始的高維度資料轉換為低維度的資料,並保留原始資料的最大變異量。這是透過將原始變數線性組合成新的變數,即主要成分,來實作的。每個主要成分都是原始變數的線性組合,並且各個主要成分之間是正交的。

PCA 的應用

在上述例子中,PCA 被應用於對早餐麥片資料進行降維。原始資料包含 13 個數值變數,透過 PCA 分析,可以得到新的主要成分,並計算出每個主要成分的方差比。結果顯示,前兩個主要成分就能夠解釋超過 50% 的總變異量。

散點圖的應用

對於降維後的資料,可以使用散點圖來視覺化地展示不同觀察值之間的關係。在上述例子中,透過散點圖可以看到早餐麥片在健康度和重量上的差異,以及不同型別麥片之間的聚類別現象。

PCA 在分類別和預測中的應用

PCA 不僅可以用於資料降維,也可以用於分類別和預測任務。透過對訓練資料進行 PCA 分析,可以得到新的預測變數,即主要成分。然後,可以使用這些主要成分來建立模型,並對新資料進行預測。

內容解密:

在進行 PCA 分析時,需要計算每個主要成分的方差比,以確定保留多少個主要成分。通常,會根據累積方差比來決定保留多少個主要成分。例如,如果前兩個主要成分就能夠解釋超過 90% 的總變異量,那麼就可以保留這兩個主要成分。

圖表翻譯:

以下是 PCA 分析結果的圖表示例:

  flowchart TD
    A[原始資料] --> B[PCA 分析]
    B --> C[主要成分]
    C --> D[方差比計算]
    D --> E[累積方差比計算]
    E --> F[保留主要成分]
    F --> G[模型建立]
    G --> H[預測]

這個圖表展示了 PCA 分析的流程,從原始資料到模型建立和預測。

4.9 使用迴歸模型進行維度縮減

在前面的章節中,我們討論了使用摘要統計、繪圖和主成分分析(PCA)等方法來減少變數的數量。這些方法都被視為探索性方法,其中一些方法完全忽略了輸出變數(例如PCA),而其他方法則嘗試非正式地將預測變數和輸出變數之間的關係納入考慮(例如,根據其行為與y的相似性合併類別)。

另一個直接考慮預測或分類別任務的維度縮減方法是使用迴歸模型。對於預測任務,我們使用線性迴歸模型(見第6章),而對於分類別任務,我們使用邏輯迴歸模型(見第10章)。在兩種情況下,我們都可以使用子集選擇程式來演算法地從較大集合中選擇變數子集(見相關章節的詳細資訊)。

已擬合的迴歸模型也可以用來進一步合併相似的類別:具有係數不具有統計學意義(即具有高p值)的類別可以與參考類別合併,因為它們與參考類別的區別似乎對輸出變數沒有顯著影響。此外,具有相似係數值(且具有相同符號)的類別通常可以合併,因為它們對輸出變數的影響相似。見第10章中預測延遲航班的例子,展示瞭如何使用迴歸模型進行維度縮減。

4.10 使用分類別和迴歸樹進行維度縮減

另一個減少變數數量和合併類別的方法是使用分類別和迴歸樹(見第9章)。分類別樹用於分類別任務,迴歸樹用於預測任務。在兩種情況下,演算法都會在預測變數上建立二元分裂,以最佳方式分類別/預測結果(例如,根據年齡30歲以上/以下)。雖然我們將詳細討論推遲到第9章,但在這裡我們注意到,結果樹圖可以用於確定重要的預測變數。未出現在樹中的預測變數(數值或類別)可以被移除。同樣,未出現在樹中的類別可以被合併。

練習題

4.1 早餐麥片。使用第4.8節中早餐麥片範例的資料,探索和總結資料如下。(注意:有幾條記錄包含缺失值;由於只有幾個,因此簡單的解決方案是先將其刪除。你可以使用ASDM中的「缺失資料處理」工具。)

a. 哪些變數是量化/數值的?哪些是順序的?哪些是名目上的?

b. 建立一個表格,顯示每個量化變數的平均值、中位數、最小值、最大值和標準偏差。這可以透過Excel的函式或Excel的資料→資料分析→描述性統計選單完成。

c. 使用ASDM繪製每個量化變數的直方圖。根據直方圖和摘要統計,回答以下問題:

i. 哪些變數具有最大變異性?

ii. 哪些變數似乎偏斜?

iii. 是否有任何值似乎極端?

d. 使用ASDM繪製一個比較熱麥片和冷麥片卡路里的並排箱形圖。這個圖表顯示了什麼?

e. 使用ASDM繪製一個並排箱形圖,展示消費者評分如何隨著貨架高度而變化。如果我們要根據貨架高度預測消費者評分,似乎我們是否需要保留所有三個貨架高度類別?

f. 計算量化變數的相關係數表(使用Excel的資料→資料分析→相關係數選單)。另外,使用ASDM生成這些變數的矩陣圖。

i. 哪一對變數最強烈相關?

ii. 我們如何根據這些相關係數減少變數的數量?

iii. 如果我們先對資料進行歸一化,相關係數會如何改變?

g. 考慮圖4.9左邊第一列。簡要描述這一列代表什麼。

4.2 大學排名。大學排名資料集包含美國提供本科課程的學院和大學的排名。每所大學有17個衡量指標,包括連續衡量指標(例如學費和畢業率)和類別衡量指標(例如按位置分類別)。

a. 刪除所有類別變數。然後從資料集中刪除所有具有缺失數值記錄(透過…)。

b. 對清理後的資料進行主成分分析,並對結果進行評論。是否應該對資料進行歸一化?討論您認為是關鍵組成部分的特徵。

4.3 豐田卡羅拉汽車銷售。ToyotaCorolla.xlsx檔案包含2004年夏季荷蘭市場上出售的二手豐田卡羅拉汽車的資料。它包含1436條記錄,包含38個屬性的詳細資訊,包括價格、年齡、公里數、馬力和其他規格。目標是根據其規格預測二手豐田卡羅拉汽車的價格。

112 4維度降維

a. 識別類別變數

在進行資料分析時,首先需要識別出類別變數。類別變數是指那些不能以數值表示,但可以用類別或標籤表示的變數。例如,顏色、性別、國家等都是類別變數。

b. 類別變數與二元虛擬變數的關係

類別變數可以轉換為二元虛擬變數,以便於進行統計分析。二元虛擬變數是指那些只有兩個可能值(0或1)的變數。例如,若有一個類別變數「顏色」,其可能值為「紅」、「藍」、「綠」,則可以轉換為三個二元虛擬變數:紅(0/1)、藍(0/1)、綠(0/1)。

c. 類別變數所需的二元虛擬變數數量

若一個類別變數有N個可能值,則需要N-1個二元虛擬變數來表示它。這是因為,只需要N-1個二元虛擬變數就可以唯一地表示出N個可能值。

d. 將類別變數轉換為二元虛擬變數

使用ASDM的資料工具,可以將類別變數轉換為二元虛擬變數。例如,若有一個類別變數「顏色」,其可能值為「紅」、「藍」、「綠」,則可以轉換為三個二元虛擬變數:紅(0/1)、藍(0/1)、綠(0/1)。對於一筆記錄,若其顏色為「紅」,則紅(0/1)=1,藍(0/1)=0,綠(0/1)=0。

e. 相關性矩陣和散佈圖

使用Excel的相關性命令,可以產生相關性矩陣。ASDM的矩陣圖可以用來產生所有變數之間的散佈圖。這些工具可以幫助我們瞭解變數之間的關係。

4.4 葡萄酒的化學特性

a. 主成分分析的結果

主成分分析的結果顯示,第一主成分的方差遠大於其他主成分。這是因為,第一主成分捕捉了原始資料中最大的方差部分。

b. 標準化的作用

標準化是指將原始資料進行縮放,使其具有相同的方差和均值。這可以幫助改善主成分分析的結果,因為有些原始變數可能具有非常大的方差,從而主導了分析的結果。

從技術架構視角來看,主要成分分析(PCA)提供了一種有效的資料降維方法,其核心思想是透過線性變換將原始資料投影到新的正交座標系中,並依據變異量大小選取主要成分。經由標準化預處理,PCA能有效避免原始資料尺度差異對分析結果的影響,並凸顯各變數對主要成分的貢獻度。然而,PCA的線性變換特性也限制了其處理非線性關係的能力,在某些資料結構下可能無法有效捕捉資料的本質特徵。此外,解釋主成分的實際意義也需要結合領域知識,並非單純依靠數學運算。展望未來,隨著非線性降維技術的發展,例如t-SNE和UMAP,預期能更精確地處理複雜資料結構,並與PCA互補,提供更全面的資料降維方案。對於追求高效率資料處理和特徵提取的應用場景,建議優先評估PCA的適用性,並根據實際情況調整標準化策略及主成分數量,以達到最佳平衡。