2015-04-02 3 views
1

Я пытаюсь сделать анализ PCA на маске в маске. Из того, что я могу сказать, matplotlib.mlab.PCA не работает, если исходная 2D-матрица не имеет значений. Есть ли у кого-нибудь рекомендации по выполнению СПС с отсутствующими значениями в Python?PCA с отсутствующими значениями в Python

Спасибо.

+0

Вы можете найти нелинейные итеративные частичные наименьшие квадраты (http://en.wikipedia.org/wiki/Non-linear_iterative_partial_least_squares). Я не знаю, существуют ли какие-либо реализации Python, но алгоритм отлично работает с отсутствующими значениями, поэтому, если вы можете найти реализацию (или написать ее самостоятельно!), Вы сможете это сделать. – DavidW

ответ

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.