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 代码的数据科学家非常有用。
相关
- 项目
- 项目
- 项目
- 项目
- 项目