---
# System prepended metadata

title: Day 57-59
tags: [cupoy, ML100]

---

# Day 57-59
###### tags: `cupoy`, `ML100`
:::info

+ 
+ 2022-06-2 20:00
:::
[TOC]

## Day-57 階層式分群

### 重點整理
+ 什麼是階層式分群(Hierarchical Clustering)
    + 一種Bottom-up的分群算法
    + 小族群逐漸融合成大族群的算法
+ 階層式分群是如何運作的？
    + 一開始將每個樣本都視為一個族群(Cluster)
    + 計算族群兩兩之間的距離，將靠近的族群進行合併
    + 反復合併直到剩下一個族群
    + 最後再根據條件進行分群
        + 族群數量
        + 族群距離
+ 階層式分群有什麼特點？
    + 不用一開始先固定好族群數(相較於Kmeans)
    + 計算量很大`O(n^2)`~`O(n^3)`
    + 內存佔用也很大`O(n^2)`
+ 計算族群之間距離的不同方法：
    + Single-link: 不同群聚中==最接近兩點間的距離==
    + Complete-link: 不同群聚中==最遠兩點間的距離==
        + 這種方法可以保證合併之後任意兩點
+ 比較階層式分群和Kmeans
    + 不用先定義族群數量
    + 在計算過程中，本來在同一群的兩筆資料：
        + 在Kmeans中==可能會==變成不同群
        + 在階層式分群中==不會==變成不同群
+ 什麼時候適合用階層式分群？
    + (同一範圍內)資料量不大的時候
    + data所蘊含的內容比起明確的feature更多由彼此直接的關係所影響的時候

### 補充資料
+ [範例：使用階層式分群用來尋找圖片中的區塊](https://scikit-learn.org/stable/auto_examples/cluster/plot_coin_ward_segmentation.html#sphx-glr-auto-examples-cluster-plot-coin-ward-segmentation-py)

## Day-58 分群算法 — 階層分群法 觀察 : 使用 2D 樣版資料集
https://lemon-dolomite-062.notion.site/Day-58-2D-bc40d32b0c65479b8c93011d9609ec21

## Day 59 降維方法 - 主成分分析
+ 為何需要降維（Dimensionlit Reduction）
  ++ 減少特徵的個數、去除特徵間的共線性問題
  ++ 降低模型的計算量，減少模型執行時間
  ++ 減少雜訊對於模型的影響
  ++ 確保特徵間相互獨立 (以PCA為例)
  ++　隱藏原始資料
  ++ 常見的降維方法 PCA , t-SNE
### PCA
+ PCA 不是從原始資料中捨棄不重要的特徵來降維，而是由這些特徵與其向量 (eigenvector) 的線性組合，降維至二維平面上，所產生的新特徵來代表原始資料
+ 實務上我們經常遇到資料有非常多的 features, 有些 features 可能高度相關，有什麼方法能夠把高度相關的 features 去除？
+ PCA 透過計算 eigen value, eigen vector, 可以將原本的 features 降維至特定的維度,原本資料有 100 個 features，透過 PCA，可以將這 100 個 features 降成 2 個 features！新 features 為舊 features 的線性組合


![](https://i.imgur.com/thk1GsO.png)



![](https://i.imgur.com/MK6jL1E.png)

![](https://i.imgur.com/n6kiaPC.gif)


找 orthogonal eigenvector 及eigenvalue 如N維的資料要降到K 維,取K 個最大的eigenvalue 對應的eigenvector 投影
程序如下:

+ 標準化 d 維原資料集 （每一維的資料減去 mean )
+ 建立共變異數矩陣 (covariance matrix)
![](https://i.imgur.com/e7ttRqP.png)

+ 將共變異數矩陣 (covariance matrix) 分解為特徵向量 (eigenvector) 與特徵值(eigenvalues)。 
+ 選取 k 個最大特徵值 (eigenvalues) 相對應k個的特徵向量 (eigenvector)，其中 k 即為新特徵子空間的維度。
+ 使用排序最上面的 k 個的特徵向量 (eigenvector)，建立投影矩陣 (project matrix) W。
+ 使用投影矩陣 (project matrix) W 轉換原本 d 維的原數據至新的 k 維特徵子空間。
+ ![](https://i.imgur.com/KxQ8z1N.gif)
參考資料: https://youtu.be/g-Hb26agBFg

Example: https://is.gd/w64QYi
習題: https://is.gd/xUFY9q