erdogant/pca
pca: A Python Package for Principal Component Analysis.
📦 pca – 主成分分析のための軽量Pythonラッパー
何であるか – pca は、主成分分析(PCA)および関連する線形次元削減手法(SparsePCA、TruncatedSVD)を簡単に実行できる、小さな純Pythonパッケージです。scikit-learnのAPIよりも豊富な可視化機能とユーティリティを提供します。
なぜ注目すべきか – もし既に sklearn.decomposition.PCA を使っているが、以下のような機能が必要なら:
- 事前作成されたバイプロット、ローディングベクトル、3次元可視化,
- 自動的な外れ値検出(Hotelling T²、SPE/D‑ModX),
- 最も重要な元の特徴量の簡単な抽出,
- 変動バイアスの正規化/除去、適合済みモデルの保存/読み込み、新しいデータを既存のPCA空間にマッピングするユーティリティ – これらすべてを1つの
pcaオブジェクトで実現できるこのライブラリは、大量のテンプレートコードを省略できます。
🎯 コア機能(READMEに記載)
| 機能 | 機能の説明 |
|---|---|
| 適合と変換 | scikit-learnのPCA/SparsePCA/TruncatedSVDをラップし、単一の fit_transform メソッドを提供。低次元座標を返す。 |
| バイプロットとローディング | 各元変数の寄与(ローディング)を示す矢印とともに、PC空間内のサンプルをプロット。 |
| 説明される分散プロット | 各成分がどれだけの分散を説明しているかを可視化し、適切なPC数の選択を支援。 |
| 最もパフォーマンスの良い特徴量 | 選択された成分に最も寄与する元の変数の順位付きリストを返す。 |
| 散布図 | 選択されたPCの2次元散布図。色やサイズのオプション付き。 |
| 外れ値検出 | HotellingのT²およびSPE/D‑ModX統計量を実装し、モデル中心から離れた観測値をマーク。 |
| 分散の正規化 | PCAの前にデータから系統的なバイアスを除去(例:各PCを単位分散にスケーリング)。 |
| 保存と読み込み | 適合済みの pca オブジェクトをディスクにシリアライズし、後で再読み込み。変換行列を保持。 |
| 離散データ対応 | 適切なエンコーディング後、カテゴリカル/離散データセットで動作(READMEに例あり)。 |
🚀 使い始め
# PyPIからインストール
pip install pca
from pca import pca
# 例 – クラシックなIrisデータセット
model = pca(n_components=2) # PC数を指定
X_red = model.fit_transform(X) # XはNumPy/pandas行列
model.biplot() # すぐに可視化
ドキュメント(バッジバーからリンク)には、完全なクイックスタートノートブック、Colabリンク、プロットギャラリーが含まれます。
📚 ドキュメントと学習リソース
- APIリファレンス – https://erdogant.github.io/pca/
- チュートリアルノートブック – READMEのColabバッジ;Examplesページでステップバイステップの使用例を確認。
- Medium記事 – PCAの基礎、外れ値検出、特徴量重要度に関する短いガイド(テーブル内のリンクあり)。
- Gumroad – 深掘り用の有料/拡張版記事とポッドキャストエピソード(オプション)。
👥 コミュニティとメンテナンス
- メンテナ – Erdogan Taskesen(GitHub
erdogant)。 - ライセンス – MIT(許容性が高く、商業利用も可)。
- 活動状況 – バッジでアクティブな状態、最近のリリース、安定したダウンロード数(月間数万件)を示す。
- 貢献 – プルリクエストを歓迎。貢献者は
contrib.rocksで表示。 - サポート – メンテナに寄付できるボタン(Buy-me-a-coffee)。
TL;DR
pca はscikit-learnの線形分解ツールを薄くラップしたライブラリで、事前作成された可視化、外れ値検出、特徴量重要度とモデル永続化のための便利な関数を追加しています。カスタムmatplotlibコードを書かずに、すぐに出版可能なPCAプロットが必要なデータサイエンティストにとって有用です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト