erdogant/pca
pca: A Python Package for Principal Component Analysis.
📦 pca – 主成分分析的輕量級 Python 封裝
是什麼 – pca 是一個小型純 Python 套件,可輕鬆執行主成分分析(PCA)及相關線性降維方法(SparsePCA、TruncatedSVD),並提供比原始 scikit-learn API 更豐富的視覺化與工具。
為什麼值得關注 – 如果你已經使用 sklearn.decomposition.PCA,但希望:
- 使用現成的雙標圖、載荷向量與 3D 可視化,
- 自動進行異常值檢測(Hotelling T²、SPE/D‑ModX),
- 簡單提取最重要的原始特徵,
- 使用工具對資料進行方差歸一化/去除偏差、儲存/載入擬合模型,並將新資料映射至既有 PCA 空間——所有這些功能皆透過一個
pca物件實現,可大幅減少重複程式碼。
🎯 核心功能(如 README 所列)
| 功能 | 說明 |
|---|---|
| 擬合與轉換 | 封裝 scikit-learn 的 PCA/SparsePCA/TruncatedSVD,提供單一的 fit_transform 方法,返回降維後的座標。 |
| 雙標圖與載荷 | 在 PC 空間中繪製樣本,並以箭頭表示每個原始變數的貢獻(載荷)。 |
| 解釋方差圖 | 可視化每個成分所捕捉的變異,幫助你選擇合適的主成分數量。 |
| 表現最佳的特徵 | 回傳對選定成分貢獻最大的原始變數的排序清單。 |
| 散點圖 | 選擇的 PC 的簡單二維散點圖,支援顏色/大小編碼。 |
| 異常值檢測 | 實作 Hotelling 的 T² 與 SPE/D‑ModX 統計量,標記遠離模型中心的觀測值。 |
| 去除方差偏差 | 在 PCA 前從資料中移除系統性偏差(例如,將每個 PC 缩放到單位變異)。 |
| 儲存與載入 | 將擬合後的 pca 物件序列化至磁碟並後續重新載入,保留轉換矩陣。 |
| 離散資料支援 | 經過適當編碼後,可處理分類/離散資料集(README 中提及範例)。 |
🚀 快速上手
# 從 PyPI 安裝
pip install pca
from pca import pca
# 範例 – 經典的 Iris 資料集
model = pca(n_components=2) # 選擇主成分數量
X_red = model.fit_transform(X) # X 是 NumPy / pandas 矩陣
model.biplot() # 快速可視化
文件(透過徽章欄連結)包含完整的 快速入門 記事本、Colab 連結與圖表畫廊。
📚 文件與學習資源
- API 參考 – https://erdogant.github.io/pca/
- 教學筆記本 – README 中的 Colab 徽章;範例 頁面提供逐步使用案例。
- Medium 文章 – 關於 PCA 基礎、異常值檢測與特徵重要性的簡明指南(表格中提供連結)。
- Gumroad – 付費/擴展版文章與播客節目,適合深入探討(可選)。
👥 社群與維護
- 維護者 – Erdogan Taskesen(GitHub
erdogant)。 - 授權 – MIT(寬鬆,允許商業使用)。
- 活躍度 – 徽章顯示活躍狀態、最近發佈與穩定的下載量(每月數萬次)。
- 貢獻 – 歡迎提交拉取請求;貢獻者透過
contrib.rocks顯示。 - 支援 – 提供捐贈按鈕(Buy-me-a-coffee)支援維護者。
TL;DR
pca 是對 scikit-learn 線性分解工具的輕量封裝,增加了預設可視化、異常值檢測,以及特徵重要性與模型持久化等便利功能。對於需要快速產生可出版的 PCA 圖表而無需撰寫自訂 matplotlib 程式碼的資料科學家非常實用。
相關
- 專案
- 專案
- 專案
- 專案
- 專案