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 程式碼的資料科學家非常實用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案