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

# 示例 – 经典的鸢尾花数据集
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 代码的数据科学家非常有用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目