Prince是一个用于Python多变量探索性数据分析的库。它包括多种用于总结表格数据的方法,包括主成分分析(PCA)和对应分析(CA)。Prince提供高效的实现,使用scikit-learn API。
使用示例
>>> import prince
>>> dataset = prince.datasets.load_decathlon()
>>> decastar = dataset.query('competition == "Decastar"')
>>> pca = prince.PCA(n_components=5)
>>> pca = pca.fit(decastar, supplementary_columns=['rank', 'points'])
>>> pca.eigenvalues_summary
eigenvalue % of variance % of variance (cumulative)
component
0 3.114 31.14% 31.14%
1 2.027 20.27% 51.41%
2 1.390 13.90% 65.31%
3 1.321 13.21% 78.52%
4 0.861 8.61% 87.13%
>>> pca.transform(dataset).tail()
component 0 1 2 3 4
competition athlete
OlympicG Lorenzo 2.070933 1.545461 -1.272104 -0.215067 -0.515746
Karlivans 1.321239 1.318348 0.138303 -0.175566 -1.484658
Korkizoglou -0.756226 -1.975769 0.701975 -0.642077 -2.621566
Uldal 1.905276 -0.062984 -0.370408 -0.007944 -2.040579
Casarsa 2.282575 -2.150282 2.601953 1.196523 -3.571794
>>> chart = pca.plot(dataset)
此图表是交互式的,在GitHub上无法显示。绿色点代表列载荷。
>>> chart = pca.plot(
... dataset,
... show_row_labels=True,
... show_row_markers=False,
... row_labels_column='athlete',
... color_rows_by='competition'
... )
安装
pip install prince
🎨 Prince使用Altair制作图表。
方法
flowchart TD
cat?(分类数据?) --> |"✅"| num_too?(也有数值数据?)
num_too? --> |"✅"| FAMD
num_too? --> |"❌"| multiple_cat?(超过两列?)
multiple_cat? --> |"✅"| MCA
multiple_cat? --> |"❌"| CA
cat? --> |"❌"| groups?(列的分组?)
groups? --> |"✅"| MFA
groups? --> |"❌"| shapes?(分析形状?)
shapes? --> |"✅"| GPA
shapes? --> |"❌"| PCA
主成分分析 (PCA)
对应分析 (CA)
多重对应分析 (MCA)
多重因子分析 (MFA)
混合数据因子分析 (FAMD)
广义普鲁克分析 (GPA)
正确性
Prince与scikit-learn和FactoMineR进行了测试对比。对于后者,使用rpy2在R中运行代码,并将结果转换为Python,这允许运行自动化测试。更多信息请参见tests
目录。
引用
如果您在科学出版物中使用此软件,请使用以下引用。
@software{Halford_Prince,
author = {Halford, Max},
license = {MIT},
title = {{Prince}},
url = {https://github.com/MaxHalford/prince}
}
支持
我在2016年上大学时创建了Prince。多年来我很少有时间维护这个包。2022年我花了大量时间重新改造了整个包。Prince现在已被下载超过100万次。我会非常感谢任何愿意赞助我的人。赞助可以让我花更多时间开发开源软件,包括Prince。
许可证
MIT许可证。更多信息请参见许可证文件。