Эффективное уменьшение размерности для большого набора данных

12

У меня есть набор данных с ~ 1M строк и ~ 500K разреженных объектов. Я хочу уменьшить размерность до порядка 1K-5K плотных объектов.

sklearn.decomposition.PCAне работает с разреженными данными, и я пытался использовать, sklearn.decomposition.TruncatedSVDно получаю ошибку памяти довольно быстро. Каковы мои варианты эффективного уменьшения размерности в этом масштабе?

timleathart
источник

Ответы:

11

Вы слышали о приближении и проекции равномерного коллектора (UMAP) ?

UMAP (аппроксимация и проекция равномерного многообразия) - это новая методика обучения многообразия для нелинейного уменьшения размерности. UMAP построен на теоретической основе, основанной на римановой геометрии и алгебраической топологии. Результатом является практичный масштабируемый алгоритм, который применяется к данным реального мира. Алгоритм UMAP конкурирует с t-SNE за качество визуализации и, возможно, сохраняет большую часть глобальной структуры с превосходной производительностью во время выполнения. Кроме того, UMAP, как описано, не имеет вычислительных ограничений на размерность вложения, что делает его жизнеспособным в качестве универсального метода уменьшения размерности для машинного обучения.

Проверьте их код и оригинальную бумагу для списка плюсов и минусов, это очень просто в использовании.

Краткие факты: UMAP может обрабатывать большие наборы данных и работает быстрее, чем t-SNE, а также поддерживает подгонку к разреженным матричным данным, и, в отличие от t-SNE, общего метода уменьшения размеров, что означает, что его можно использовать не только для визуализации, но и для уменьшения функционального пространства для ввода в другие модели машинного обучения.

Конкретные примеры: я провел сравнительный анализ метода и сравнил его с некоторыми другими тетрадями-бенчмарками с методами уменьшения размерности , если заинтересован в быстром взгляде и начале работы.

TwinPenguins
источник
2
(+1) - UMAP действительно великолепен! Вы могли бы немного подумать о реформировании: ваш абзац посередине и следующие маркеры повторяют одну и ту же информацию. Кроме того, вы можете сделать это цитатой, так как она (более или менее) скопирована с их сайта.
n1k31t4
2
Конечно, я могу, конечно, уменьшить его, я просто хотел указать на них здесь, и некоторые пункты немного перефразированы. Спасибо. В любом случае мне нравится UMAP.
Твин Пингвинз
1
Спасибо за рекомендацию! Я знал это как альтернативу t-SNE для визуализации, но не знал, что это также хорошо для уменьшения общей размерности.
Timleathart
1

На тот случай, если люди, перебравшие этот пост, обнаружат, что UMAP недостаточно эффективен, вот некоторые другие методы, с которыми я столкнулся, которые еще более эффективны (но не настолько высокого качества):

  • d × мdмsklearn.random_projection

  • ммsklearn.feature_extraction.FeatureHasher

timleathart
источник