Вопрос:

PCA с отсутствующими значениями в Python

python numpy pca

5883 просмотра

2 ответа

240 Репутация автора

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

Благодарю.

Автор: Emily Источник Размещён: 02.04.2015 07:15

Ответы (2)


6 плюса

456 Репутация автора

Решение

Я думаю, что вам, вероятно, потребуется выполнить некоторую предварительную обработку данных перед выполнением 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

И многие другие статистические функции и методы машинного обучения.

Автор: Numlet Размещён: 02.04.2015 08:04

0 плюса

471 Репутация автора

Импульсивные данные искажают результат таким образом, что это может повлиять на оценки PCA. Лучшим подходом является использование алгоритма PPCA, который дает тот же результат, что и PCA, но в некоторых реализациях может более надежно справляться с отсутствующими данными.

Я нашел две библиотеки. У тебя есть

  1. Пакет PPCA на PyPI, который называется PCA-magic на github
  2. Пакет PyPPCA, имеющий одинаковое имя на PyPI и github

Поскольку пакеты требуют минимального обслуживания, вы можете захотеть реализовать их самостоятельно. Приведенный выше код основан на теории, представленной в хорошо процитированной (и хорошо написанной!) Статье Tipping and Bishop 1999. Он доступен на домашней странице Tippings, если вы хотите получить руководство по правильной реализации PPCA.

Кроме того, sklearn реализация PCA на самом деле является реализацией PPCA, основанной на TippingBishop1999, но они не решили реализовать ее таким образом, чтобы она обрабатывала пропущенные значения.

Автор: LudvigH Размещён: 13.06.2019 08:36
Вопросы из категории :
32x32