39 подписчиков
Весь поиск Google держится на одном векторе
Представьте таблицу с 500 столбцами. Где здесь сигнал, а где шум – глазами не увидеть. Это проклятие размерности, и с ним сталкивается каждый, кто открыл реальный датасет.
Способ разобраться придумали больше ста лет назад. При линейном преобразовании почти все векторы меняют и длину, и направление. Почти все, но не собственные: они сохраняют направление и только сжимаются или растягиваются. Собственный вектор – это направление, а собственное значение λ – во сколько раз оно растянулось, то есть насколько оно важное.
Звучит абстрактно, пока не увидишь, где это работает.
▪️ PCA
Матрица ковариаций — это паспорт формы вашего облака данных. Её собственные векторы задают новые оси, вдоль которых разброс максимален, а λ показывает, насколько он велик. Берём две-три компоненты с наибольшими λ, остальные отбрасываем. Ровно это происходит, когда вы пишете PCA(n_components=10).
▪️ PageRank
Та же математика, другие данные. Страница важна, если на неё ссылаются важные страницы. Определение рекурсивное, в лоб не посчитать. Google собрал все ссылки в интернете в огромную матрицу и стал искать вектор рейтингов, который после раунда голосования не меняется. Это и есть её собственный вектор, и это порядок выдачи в поиске.
▪️ Eigenfaces
А самое неожиданное было в 90-х. Учёные прогнали через PCA базу фотографий и превратили главные компоненты обратно в картинки. Получились призрачные полупрозрачные лица: первое – усреднённое, следующие отвечали за ширину лица, очки, угол света. И любое лицо стало не набором из десятков тысяч пикселей, а коротким рецептом из коэффициентов.
Одна идея – и сжатие данных, и ранжирование, и распознавание лиц. Чтобы её понять, не нужен мехмат: хватает базовых матриц и производных, но для специалиста именно здесь проходит граница «понимаю, что делаю».
А вы уже сталкивались с PCA на практике?
1 минута
4 августа