2015-04-02 54 views
1

我正在嘗試對掩碼數組執行PCA分析。從我所知道的來看,如果原始2D矩陣有缺失值,matplotlib.mlab.PCA不起作用。有沒有人有建議使用Python中缺少的值來完成PCA?在Python中缺少值的PCA

謝謝。

+0

您可能會查找非線性迭代偏最小二乘(http://en.wikipedia.org/wiki/Nonlinear-iterative_partial_least_squares)。我不知道是否有任何Python實現,但算法可以在丟失值的情況下正常工作,所以如果你能找到一個實現(或者自己寫一個實現),你應該可以實現它。 – DavidW 2015-04-02 22:27:15

回答

2

我想你可能需要在做PCA之前對數據進行一些預處理。 您可以使用:

sklearn.preprocessing.Imputer 

http://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.Imputer.html#sklearn.preprocessing.Imputer

使用此功能可以自動替換丟失值的平均值,中位數或衆數。哪種選擇最好很難說,它取決於很多因素,比如數據的樣子。

順便問一下,你也可以使用PCA使用相同的庫有:

sklearn.decomposition.PCA 

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

和許多其他的統計功能和機器學習tecniques。