我正在尝试对蒙面数组进行PCA分析.据我所知,matplotlib.mlab.PCA如果原始2D矩阵缺少值,则无效.有没有人建议在Python中使用缺少值的PCA?
谢谢.
Lud*_*igH 16
插补数据会以可能使 PCA 估计产生偏差的方式扭曲结果。更好的方法是使用 PPCA 算法,它给出与 PCA 相同的结果,但在某些实现中可以更稳健地处理丢失的数据。
我找到了两个库。你有
由于这些软件包的维护成本较低,您可能希望自己实现它。上面的代码建立在 Tipping 和 Bishop 1999 年引用的(并且写得很好!)论文中的理论基础上。如果您需要有关如何正确实施 PPCA 的指导,可以在Tippings 主页上找到它。
顺便说一句,PCA的sklearn 实现实际上是基于 TippingBishop1999 的 PPCA 实现,但他们没有选择以处理缺失值的方式实现它。
编辑:上面的两个库都有问题,所以我自己不能直接使用它们。我分叉了 PyPPCA 并修复了它。在 github 上可用。
我想你可能需要在做PCA之前对数据进行一些预处理.您可以使用:
sklearn.impute.SimpleImputer
Run Code Online (Sandbox Code Playgroud)
使用此功能,您可以自动替换平均值,中值或最常值的缺失值.哪个选项最好是很难说的,这取决于许多因素,例如数据的外观.
顺便说一句,您也可以使用相同的库使用PCA:
sklearn.decomposition.PCA
Run Code Online (Sandbox Code Playgroud)
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
还有许多其他统计功能和机器学习技术.
| 归档时间: |
|
| 查看次数: |
7797 次 |
| 最近记录: |