Спс, когда размерность больше количества образцов


21

Я столкнулся со сценарием, где у меня есть 10 сигналов на человека на 10 человек (таким образом, 100 выборок), содержащих 14000 точек данных (измерений), которые мне нужно передать в классификатор. Я хотел бы уменьшить размерность этих данных, и PCA, кажется, является способом сделать это. Тем не менее, мне удалось найти только примеры PCA, где количество образцов больше, чем количество измерений. Я использую приложение PCA, которое находит ПК с помощью SVD. Когда я передаю свой набор данных 100x14000, возвращается 101 ПК, поэтому подавляющее большинство измерений, очевидно, игнорируется. Программа указывает, что первые 6 ПК содержат 90% дисперсии.

Разумно ли предположить, что эти 101 ПК содержат практически все отклонения, а оставшиеся размеры пренебрежимо малы?

В одной из прочитанных мной статей утверждается, что, используя аналогичный (хотя и несколько более низкого качества) набор данных, чем мой, они смогли сократить 4500 измерений до 80, сохранив 96% исходной информации. Бумажные ручные волны по деталям использованного метода PCA, было доступно только 3100 образцов, и у меня есть основания полагать, что меньше образцов, чем было использовано для фактического выполнения PCA (чтобы устранить смещение из фазы классификации).

Я что-то упустил или это действительно способ использования PCA с набором данных с высокой размерностью и малым размером выборки? Любая обратная связь будет принята с благодарностью.


2
Если у вас не намного больше данных, чем измерений, трудно найти направление, которое удаляет большую часть изменчивости, что и должен делать первый главный компонент. Вообще есть проклятие размерности. Данные имеют тенденцию отходить от центра в больших измерениях. Беллман писал об этом в 1960-х годах.
Майкл Р. Черник

Ответы:


9

Я бы посмотрел на проблему немного иначе: насколько сложную модель вы можете себе позволить, имея всего 10 субъектов / 100 образцов?

И на этот вопрос я обычно отвечаю: гораздо меньше, чем 100 компьютеров. Обратите внимание, что я работаю с данными другого типа (вибрационные спектры), поэтому все может немного отличаться. В моей области обычно используется 10, 25 или 50 компьютеров, рассчитанных по O (1000) спектрам O (10) субъектов.

Вот что я бы сделал:

  • Посмотрите на дисперсию, покрытую этими 100 ПК. Я обычно нахожу, что только немногие компоненты действительно вносят вклад в дисперсию в наших данных.

  • Я очень предпочитаю PLS в качестве предварительной обработки для классификации по сравнению с PCA, так как она намного лучше выполняет сортировку направлений, которые имеют большие отклонения, что не помогает в классификации (в моем случае это могут быть вариации фокуса, разная толщина образца). ..). По моему опыту, я часто получаю похожие классификаторы с 10 скрытыми переменными PLS или от 25 до 50 ПК.

  • Образцы проверки должны обрабатываться с использованием ротации PCA, рассчитанной только из обучающего набора, в противном случае проверка может (и в таких крайних случаях, которые, скорее всего, будут ваши) иметь большой перевес оптимистического смещения
    Другими словами, если вы выполняете внешнюю загрузку или перекрестную проверку, предварительную обработку PCA или PLS необходимо рассчитывать для каждой комбинации поезд / набор тестов в отдельности.


Спасибо за очень информативные посты. Я работаю с данными биометрических сигналов. Чтобы выполнить классификацию с разумной производительностью, мне нужно менее 100 ПК, где-то в диапазоне 25-50 было бы хорошо. Я решил сократить частоту дискретизации, чтобы уменьшить количество выборок, которые мне нужно исследовать, но ожидаете ли вы, что компромисс по разрешению будет стоить этого или он будет иметь какой-либо эффект, если размер обучения остается прежним ? Хотя мне нужно, чтобы PCA соответствовал другим исследованиям в этой области, я определенно буду рассматривать PLS как вторичный подход.
Джеймс

1
@James: боюсь, на вопрос о частоте дискретизации невозможно ответить, не зная ваших данных. По сути это вопрос эффективного размера выборки. Не зная ничего более, мы можем только сказать, что оно находится где-то между n (человек) и n (образцы). Если все 10 образцов одного человека намного больше похожи друг на друга, чем образцы другого человека, то большее количество образцов не добавляет много информации в набор данных. Вы можете проверить это, построив одну модель со всеми образцами и вторую модель только с одним образцом на человека и сравнив их эффективность.
cbeleites поддерживает Монику

@James: (часть 2) Если вы считаете, что образцы одного человека довольно похожи друг на друга, вам следует позаботиться о том, чтобы наборы для проверки и обучения не разделяли личность (т. Е. Все образцы одного человека либо находятся на обучении, либо в тестовый набор).
cbeleites поддерживает Монику

Спасибо, что вернулся ко мне. Мои данные имеют довольно высокую степень изменчивости со значительным совпадением в пространстве выборки среди пользовательских классов. Но извините, вместо того, чтобы уменьшать выборки, я имел в виду уменьшение разрешения для 14000 точек данных, так что, скажем, только каждая 2-я, 3-я или 4-я точка использовались в PCA, но с тем же числом реальных пользовательских выборок. Мне было любопытно, можно ли ожидать, что такое снижение разрешения окажет положительное, отрицательное влияние или вообще не повлияет на результаты PCA, учитывая, что мои размеры уже намного больше, чем мои образцы.
Джеймс

1
@ Джеймс, это опять зависит. Но вместо того, чтобы использовать только каждую n точку, я бы рекомендовал усреднять / разбивать каждые n точек, поэтому вы уменьшаете размерность и увеличиваете отношение сигнал / шум. Чтобы выяснить, какое разрешение (независимо от размера точки данных; я бы поставил здесь «спектральное») разрешение вам необходимо, ИМХО - это одна из точек характеристики вашей проблемы / характеристики / характеристики классификатора. Tчас
cbeleites поддерживает Монику

9

Если - это число точек, а - это число измерений, а то число главных компонентов с ненулевой дисперсией не может превышать (при выполнении PCA на необработанных данных) или (при выполнении PCA на центрированные данные - как обычно).NпNпNN-1


2
Другими словами, 100 компьютеров покрывают всю дисперсию в наборе данных размером (100 x 1400). Математически, в этом наборе данных не может быть дальнейших отклонений. Вещи могут отличаться, если вы посмотрите на дисперсию в популяции земли, которая выбрана вашим набором данных.
cbeleites поддерживает Монику

2
@ ttnphns: знаете ли вы цитату, в которой говорится, что вы здесь говорите?
Патрик


4

Подходя к этому под другим углом:

В PCA вы аппроксимируете ковариационную матрицу приближением -rank (то есть вы сохраняете только верхние главных компонентов). Если вы хотите изобразить это, ковариационные векторы проецируются ортогонально вниз в линейное подпространство меньшей размерности. Поскольку у вас есть только 100 точек данных, выборочная ковариация обязательно лежит в подпространстве измерения 100 (фактически, как доказывает ttnphns, 99).КК

Конечно, дело в том, чтобы сохранить большие ПК и выбросить маленькие, чтобы избежать шума при установке. Вы сказали, что 6 составляют 96% дисперсии, так что это звучит хорошо. Другой метод должен был бы сделать перекрестную проверку и выяснить , как высокоК

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.