---
# System prepended metadata

title: DIMENSIONALITY REDUCTION 維度下降

---

# DIMENSIONALITY REDUCTION 維度下降
1. Principal Components Analysis (PCA)
2. Factor Analysis (FA)
3. Independent Components Analysis (ICA)
4. Linear Discriminant Analysis (LDA)
---
## Motivation
為什需要進行維度下降
* 更快的分類速度（複雜度下降）
* 降低噪音點（noise or outlier）對模型的影響力
* 較好的資料視覺檢視
* 可能有利於分析

在高維度的空間中，有些屬性在經過線性轉換後會變得相當小（可忽略）
## Principal Components Analysis (PCA)
[ Data Points ]    ${\large x_i \in R^p , i = 1,2,...,n}$
[ Load Vector ]    ${\large w_k \in R^p, k = 1,2,...,m}$
</br>
**Find the first component**  (dot means Inner product)
$${\large w_1 = arg \max_{||w|| = 1} \sum_i(x_i \cdot w)^2} $$
This **OPTIMIZATION PROBLEM** can be solved by **Lagrange multipliers** or **SVD**.

### PCA 概念
想找出一個 axis $w_1 \ni$ 投影到此axis上的 $x_i$ 能**獲得最大的平方和**

### PCA 計算
$$X^TX = W\Lambda W^T$$ 
${\large W = \begin{bmatrix}
w_1 & w_2 & ... & w_p\\ \end{bmatrix}_{p\times p}}$ consists of normalized eigenvectors **$\Large w_k$** which is associated with $\lambda_k$;     btw, **$\Large w_j$** and **$\Large w_k$** are **orthonormal**.
$\Lambda = diag(\lambda_1, ...,\lambda_p)$ is a diagonal matrix consisting of eigenvalues of **$X^TX$**
#### 執行步驟
* 令 $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p$
* 進行維度下降，直到僅保留 k 個最具影響力的屬性
* 計算樣本 $\Large x_i$ 維度下降後的特徵矩陣
$$\begin{bmatrix} t_{i,1} & t_{i,2} & ... & t_{i,k}\\ \end{bmatrix} =\begin{bmatrix} x_{i,1} & x_{i,2} & ... & x_{i,p}\\ \end{bmatrix}
\begin{bmatrix} w_1 & w_2 & ... & w_k\\ \end{bmatrix}_{p\times k}$$
* 透過 Proportion of Variance 挑出k個屬性,  PoV = $\Large \frac{\lambda_1+\cdots+\lambda_k}{\lambda_1+\cdots+\lambda_p} \geq 0.9$ (typically)

## Factor Analysis (FA)
FA是一種統計方法，透過潛在數量較少的未觀察變量因子（unobserved variable / factors）來描述觀察到的相關變量之間的變異性。其主要精神，即找出「潛在變項」( Latent Variable )。試想一份50題問卷，如果能找到 4 個因素包含 50 個題目中 95% 的資訊，那麼我們應該分析 50 題的所有差異或是直接觀察 4 個主要因素呢?
![](https://i.imgur.com/XExsUuD.png)

「基本公式」($x_i,z_j, and  \varepsilon_i$ are scalar **random variables**)
$$ x_i - \mu_i = v_{i,1}z_1+v_{i,2}z_2+\cdots+v_{i,k}z_k+\varepsilon_i$$
* $\large x_i$, i = 1...p 可測量變數（e.g. Waiting time）
* $\large z_j$ , j = 1...k 潛在因素（e.g. Food quality）
    * $E[z_j] = 0, \sum = I$ (i.e. covariance is Identity matrix)
* $\large \varepsilon_i$ 是噪音項，其中 $E[\varepsilon_i] = 0, \sum = \Psi$ (diagonal matrix)
* $z_j$ 及 $\varepsilon_i$ 的關係為 not correlated
* 令 $x = \begin{bmatrix} x_1 & x_2 & ... & x_p\\ \end{bmatrix}^T$ 則可將基本公式改寫成矩陣形式，同時不失一般性去除平均值 mean ( $\mu$ ) = 0 

$$\large x-\mu = Vz + \varepsilon$$
$$\Rightarrow{\large x = Vz + \varepsilon}$$ 

$$\Rightarrow{\large \begin{bmatrix}x_1 \\x_2 \\ \cdots \\  x_p \end{bmatrix} = 
\begin{bmatrix} 
v_{1,1} & v_{1,2} & ... & v_{1,k} \\ 
v_{2,1} & v_{2,2} & \cdots & v_{2,k} \\ 
\cdot & \cdot & \cdot & \cdot \\
v_{p,1} & v_{p,2} & \cdots & v_{p,k}
\end{bmatrix}_{p \times k}
\begin{bmatrix} 
z_1 \\ z_2 \\ \cdots \\ z_k 
\end{bmatrix}_{k \times 1}
+ 
\begin{bmatrix}\varepsilon_1 \\ \varepsilon_2 \\ \cdots \\   \varepsilon_p \end{bmatrix}}$$

其中 $V = [v_{i,j}]$ 是一個 $p\times k$ 階常數矩陣，稱為因素負荷 (factor loading)，描述因素 $\mathbf{z}$ 是多變數 $\mathbf{x}$ 的變換。你不妨想像 $z_1,\ldots,z_k$ 代表未知的信號源，將 k 個信號同時送入 p 個通道，每個通道各自有增強或衰減信號的方式 (線性組合)，通道末端再引入雜音 (殘差) 就是我們接收到的變數 $x_1,\ldots,x_p$

因素分析的模型參數包括 $p\times k$ 階因素負荷 F 與殘差的變異數 $\Psi=\hbox{diag}(\psi_1,\ldots,\psi_p)$，合計 p(k+1) 個參數值。根據上述假設，你可以計算隨機向量 $\mathbf{x}$ 的期望值與共變異數矩陣。期望值 $\hbox{E}[\cdot]$ 是線性算子，因此
$$\displaystyle \hbox{E}[\mathbf{x}]=\hbox{E}[V\mathbf{z}+\boldsymbol{\epsilon}]=V\hbox{E}[\mathbf{z}]+\hbox{E}[\boldsymbol{\epsilon}]=\mathbf{0}$$
$$ Cov[x]= \Sigma = VV^T + \Psi$$

#### 參數估計

假設你有一筆樣本大小為 n 的數據$\{\mathbf{x}_1,\ldots,\mathbf{x}_n\}$，每個數據點視為一個向量 $\mathbf{x}_l=(x_{l1},\ldots,x_{lp})^T\in\mathbb{R}^p$。定義 $n\times p$ 階數據矩陣
$$\displaystyle X=\begin{bmatrix}  \mathbf{x}_1^T\\  \vdots\\  \mathbf{x}_n^T  \end{bmatrix}=\begin{bmatrix}  x_{11}&\cdots&x_{1p}\\  \vdots&\ddots&\vdots\\  x_{n1}&\cdots&x_{np}  \end{bmatrix}$$
其中 $x_{li}$ 表示第 i 個隨機變數 $x_i$ 的第 $l$ 個量測值，$i=1,\ldots,p，l=1,\ldots,n$。我們假設樣本已經去除平均數，$\sum_{l=1}^n\mathbf{x}_l=\mathbf{0}$。共變異數矩陣 $\Sigma$ 通常以樣本共變異數矩陣估計：

$$\displaystyle S=\frac{1}{n-1}\sum_{i=1}^n\mathbf{x}_i\mathbf{x}_i^T=\frac{1}{n-1}X^TX。$$

接下來的問題是從給定的樣本共變異數矩陣 $S=[s_{ij}]$ 
**求出因素分析的參數估計** : $\hat{V} 與 \hat{\Psi} 使得 S\approx \hat{V}\hat{V}^T+\hat{\Psi}$。
兩種常見的估計法
主因素分析 (principal factor analysis) 與最大似然估計 (maximum likelihood estimation) (數學過程略過)

如果特殊變異矩陣不存在，$\Psi=0$ 表示 $Cov[\mathbf{x}] = \Sigma = VV^T$ 
已知 
$$\large S=W\Lambda W^T = (W \Lambda^\frac{1}{2})(\Lambda^\frac{1}{2} W^T)=(W \Lambda^\frac{1}{2})(W \Lambda^\frac{1}{2})^T$$

如果 V 的大小與 $(W\Lambda^\frac{1}{2})$ 相同，則可直接使用估計值 $$\hat{V}=(W\Lambda^\frac{1}{2}) ,  \mathbf{\hat{z}} = \hat{V}^{-1}(\mathbf{x}-\mathbf{\varepsilon})$$
否則，如果大小不同但 p > k (註： $\small \mathbf{x} = \begin{bmatrix} x_1 & x_2 & ... & x_p\\ \end{bmatrix}^T$,   $\small \mathbf{z} = \begin{bmatrix} z_1 & z_2 & ... & z_k\\ \end{bmatrix}^T$ ) 則
$$ \mathbf{\hat{V}}= 
\begin{bmatrix} \uparrow & & \uparrow \\ \sqrt{\lambda_1}\mathbf{w_l} & ... & \sqrt{\lambda_k}\mathbf{w_k}\\
\downarrow & & \downarrow
\end{bmatrix}_{p \times k}$$