ppca

Вероятностный анализ главных компонентов

Описание

пример

[coeff,score,pcvar] = ppca(Y,K) возвращает коэффициенты основного компонента для n-by-p матрица данных Y на основе вероятностного анализа главных компонентов (PPCA). Это также возвращает баллы основного компонента, которые являются представлениями Y на пробеле основного компонента и отклонениях основного компонента, которые являются собственными значениями ковариационной матрицы Y, в pcvar.

Каждый столбец coeff содержит коэффициенты для одного основного компонента, и столбцы имеют в порядке убывания отклонение компонента. Строки score соответствуйте наблюдениям, и столбцы соответствуют компонентам. Строки Y соответствуйте наблюдениям, и столбцы соответствуют переменным.

Вероятностный анализ главных компонентов может быть предпочтителен для других алгоритмов, которые обрабатывают недостающие данные, такие как переменный алгоритм наименьших квадратов, когда любой вектор данных имеет одно или несколько отсутствующих значений. Это принимает, что значения отсутствуют наугад через набор данных. Алгоритм максимизации ожидания используется и в полных и в недостающих данных.

пример

[coeff,score,pcvar] = ppca(Y,K,Name,Value) возвращает коэффициенты основного компонента, баллы и отклонения с помощью дополнительных опций для расчета и обрабатывая специальных типов данных, заданных одним или несколькими Name,Value парные аргументы.

Например, можно ввести начальные значения для остаточного отклонения, v, или измените критерии завершения.

пример

[coeff,score,pcvar,mu] = ppca(___) также возвращает предполагаемое среднее значение каждой переменной в YМожно комбинировать с любым синтаксом из перечисленных выше.

пример

[coeff,score,pcvar,mu,v,S] = ppca(___) также возвращает изотропную остаточную дисперсию в v и конечные результаты в сходимости в структуре S.

Примеры

свернуть все

Загрузите выборочные данные.

load fisheriris

Двойной матричный meas состоит из четырех типов измерений на цветах, которые, соответственно, являются длиной и шириной чашелистиков и лепестков.

Введите отсутствующие значения случайным образом.

y = meas;
rng('default'); % for reproducibility
ix = random('unif',0,1,size(y))<0.20;
y(ix) = NaN;

Теперь приблизительно 20% данных отсутствуют, обозначенный NaN.

Выполните вероятностный анализ главных компонентов и запросите коэффициенты компонента и отклонения.

[coeff,score,pcvar,mu] = ppca(y,3);
coeff
coeff = 4×3

    0.3562    0.6709   -0.5518
   -0.0765    0.7120    0.6332
    0.8592   -0.1597    0.0596
    0.3592   -0.1318    0.5395

pcvar
pcvar = 3×1

    4.0914
    0.2125
    0.0617

Выполните анализ главных компонентов с помощью переменного алгоритма наименьших квадратов и запросите коэффициенты компонента и отклонения.

[coeff2,score2,pcvar2,mu2] = pca(y,'algorithm','als',...
'NumComponents',3);
coeff2
coeff2 = 4×3

    0.3376    0.4952    0.7406
   -0.0731    0.8609   -0.4476
    0.8657   -0.1168   -0.1233
    0.3623   -0.0086   -0.4857

pcvar2
pcvar2 = 3×1

    4.0733
    0.2652
    0.1222

Коэффициенты и отклонения первых двух основных компонентов подобны.

Другой способ сравнить результаты состоит в том, чтобы найти угол между этими двумя пробелами заполненным векторами коэффициентов.

subspace(coeff,coeff2)
ans = 0.0884

Угол между этими двумя пробелами довольно мал. Это указывает, что эти два результата друг близко к другу.

Загрузите набор выборочных данных.

load imports-85

Матрица данных X имеет 13 непрерывных переменных в столбцах 3 - 15: колесная база, длина, ширина, высота, собственный вес, объем двигателя, скука, диапазон, коэффициент сжатия, лошадиная сила, пиковый об/мин, город-mpg и магистраль-mpg. Переменные перенесли, и диапазон пропускают четыре значения в строках 56 - 59, и лошадиная сила переменных и пиковый об/мин пропускают два значения в строках 131 и 132.

Выполните вероятностный анализ главных компонентов и отобразите первые три основных компонента.

[coeff,score,pcvar] = ppca(X(:,3:15),3);
Warning: Maximum number of iterations 1000 reached.

Измените допуск завершения к функции стоимости к 0,01.

opt = statset('ppca');
opt.TolFun = 0.01;

Выполните вероятностный анализ главных компонентов.

[coeff,score,pcvar] = ppca(X(:,3:15),3,'Options',opt);
Warning: Maximum number of iterations 1000 reached.

ppca теперь завершает работу, прежде чем максимальное количество итераций достигнуто, потому что оно соответствует допуску к функции стоимости.

Загрузите выборочные данные.

load hald
y = ingredients;

Данные о компонентах имеют 13 наблюдений для 4 переменных.

Введите отсутствующие значения данным.

y(2:16:end) = NaN;

Каждым 16-м значением является NaN. Это соответствует 7,69% данных.

Найдите первые три основных компонента данных с помощью PPCA и отобразите восстановленные наблюдения.

[coeff,score,pcvar,mu,v,S] = ppca(y,3);
Warning: Maximum number of iterations 1000 reached.
S.Recon
ans = 13×4

    6.8536   25.8700    5.8389   59.8730
    1.0433   28.9710   14.9654   51.9738
   11.5770   56.5067    8.6352   20.5076
   11.0835   31.0722    8.0920   47.0748
    7.0679   52.2556    6.0748   33.0598
   11.0486   55.0430    9.0534   22.0423
    2.8493   70.8691   16.8339    5.8656
    1.0333   31.0281   19.6907   44.0306
    2.0400   54.0354   18.0440   22.0349
   20.7822   46.8091    3.7603   25.8081
      ⋮

Можно также восстановить наблюдения с помощью основных компонентов и предполагаемого среднего значения.

t = score*coeff' + repmat(mu,13,1);

Загрузите данные.

load hald

Здесь, ingredients матрица с действительным знаком переменных предикторов.

Выполните вероятностный анализ основных компонентов и коэффициенты отображения.

[coeff,score,pcvariance,mu,v,S] = ppca(ingredients,3);
Warning: Maximum number of iterations 1000 reached.
coeff
coeff = 4×3

   -0.0693   -0.6459    0.5673
   -0.6786   -0.0184   -0.5440
    0.0308    0.7552    0.4036
    0.7306   -0.1102   -0.4684

Отобразите результаты алгоритма в сходимости PPCA.

S
S = struct with fields:
           W: [4x3 double]
        Xexp: [13x3 double]
       Recon: [13x4 double]
           v: 0.2372
     NumIter: 1000
    RMSResid: 0.2340
      nloglk: 149.3388

Отобразите матричный W.

S.W
ans = 4×3

    0.5624    2.0279    5.4075
    4.8320  -10.3894    5.9202
   -3.7521   -3.0555   -4.1552
   -1.5144   11.7122   -7.2564

Ортогонализирование W восстанавливает коэффициенты.

orth(S.W)
ans = 4×3

   -0.0693    0.6459    0.5673
   -0.6786    0.0184   -0.5440
    0.0308   -0.7552    0.4036
    0.7306    0.1102   -0.4684

Входные параметры

свернуть все

Входные данные, для которых можно вычислить основные компоненты, заданные как n-by-p матрица. Строки Y соответствуйте наблюдениям, и столбцы соответствуют переменным.

Типы данных: single | double

Количество основных компонентов, чтобы возвратиться, заданный как целочисленное значение меньше, чем ранг данных. Максимальный возможный ранг является min (n, p), где n является количеством наблюдений, и p является количеством переменных. Однако, если данные сопоставляются, ранг может быть меньшим, чем min (n, p).

ppca заказывает компоненты на основе их отклонения.

Если K min (n, p), ppca наборы K равняйтесь min (n, p) – 1, и 'W0' является усеченным к min (p, n) – 1 столбец, если вы задаете p-by-p W0 матрица.

Например, можно запросить только первые три компонента, на основе отклонения компонента можно следующим образом.

Пример: coeff = ppca(Y,3)

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'W0',init,'Options',opt указывает что начальные значения для 'W0' находятся в матричном init и ppca использует опции, заданные opt.

Начальное значение W в вероятностном алгоритме анализа главных компонентов, заданном как разделенная запятой пара, состоящая из 'W0' и p-by-k матрица.

Типы данных: single | double

Начальное значение остаточного отклонения, заданного как разделенная запятой пара, состоящая из 'v0' и значение положительной скалярной величины.

Типы данных: single | double

Опции для итераций, заданных как разделенная запятой пара 'Options' и структура создается statset функция. ppca использует следующие поля в структуре опций.

'Display'Level of display выводится. Выбором является 'off', 'final', и 'iter'.
'MaxIter'Максимальное количество шагов позволено. Значение по умолчанию 1000. В отличие от этого, в настройках оптимизации, достигая MaxIter значение рассматривается как сходимость.
'TolFun'Положительное целое число, утверждающее допуск завершения к функции стоимости. Значением по умолчанию является 1e-6.
'TolX'Положительное целое число, утверждающее порог сходимости для относительного изменения в элементах W. Значением по умолчанию является 1e-6.

Можно изменить значения этих полей и задать новую структуру в ppca использование 'Options' аргумент пары "имя-значение".

Пример: opt = statset('ppca'); opt.MaxIter = 2000; coeff = ppca(Y,3,'Options',opt);

Типы данных: struct

Выходные аргументы

свернуть все

Коэффициенты основного компонента, возвращенные как p-by-k матрица. Каждый столбец coeff содержит коэффициенты для одного основного компонента. Столбцы находятся в порядке убывающего отклонения компонента, pcvar.

Баллы основного компонента, возвращенные как n-by-k матрица. Строки score соответствуйте наблюдениям, и столбцы соответствуют компонентам.

Отклонения основного компонента, которые являются собственными значениями ковариационной матрицы Y, возвращенный как вектор-столбец.

Предполагаемое среднее значение каждой переменной в Y, возвращенный как вектор-строка.

Изотропная остаточная дисперсия, возвращенная как скалярное значение.

Конечные результаты в сходимости, возвращенной как структура, содержащая следующие поля.

WW в сходимости.
XexpУсловное ожидание предполагаемой скрытой переменной x.
ReconВосстановленные наблюдения с помощью основных компонентов k. Это - низкое приближение размерности входных данных Y, и равно mu + score*coeff'.
vОстаточное отклонение.
RMSResidСреднеквадратичное значение остаточных значений.
NumIterКоличество количеств итерации.
nloglkОтрицательное значение функции логарифмической правдоподобности.

Больше о

свернуть все

Вероятностный анализ главных компонентов

Вероятностный анализ главных компонентов (PPCA) является методом, чтобы оценить основные оси, когда любой вектор данных имеет одно или несколько отсутствующих значений.

PPCA основан на изотропной ошибочной модели. Это стремится связать p - размерный вектор наблюдения y к соответствующему k - размерный вектор скрытых (или ненаблюдаемый) переменная x, которая нормальна со средним нулем и ковариацией I (k). Отношение

yT=WxT+μ+ε,

где y является вектором-строкой из наблюдаемой переменной, x является вектором-строкой из скрытых переменных, и ε является изотропным остаточным членом. ε является Гауссовым со средним нулем и ковариацией v *I (k), где v является остаточным отклонением. Здесь, k должен быть меньшим, чем ранг для остаточного отклонения, чтобы быть больше 0 (v> 0). Стандартный анализ главных компонентов, где остаточное отклонение является нулем, является ограничивающим случаем PPCA. Наблюдаемые переменные, y, условно независимы, учитывая значения скрытых переменных, x. Так, скрытые переменные объясняют, что корреляции между переменными наблюдения и ошибкой объясняют изменчивость, уникальную для конкретного y i. p-by-k матричный W связывает скрытые переменные и переменные наблюдения, и векторный μ разрешает модели иметь ненулевое среднее значение. PPCA принимает, что значения отсутствуют наугад через набор данных. Это означает что, отсутствует ли значение данных или не не зависит от скрытой переменной, учитывая наблюдаемые значения данных.

В соответствии с этой моделью,

y~N(μ,W*WT+v*I(k)).

Нет никакой закрытой формы аналитического решения для W и v, таким образом, их оценки определяются итеративной максимизацией соответствующей логарифмической правдоподобности с помощью алгоритма максимизации ожидания (EM). Этот алгоритм EM обрабатывает отсутствующие значения путем обработки их как дополнительных скрытых переменных. В сходимости столбцы W охватывают подпространство, но они не ортонормированы. ppca получает ортонормированные коэффициенты, coeff, для компонентов ортогонализацией W.

Ссылки

[1] Добавление подсказки, M. E. и C. M. Епископ. Вероятностный Анализ главных компонентов. Журнал Королевского Статистического Общества. Серии B (Статистическая Методология), Издание 61, № 3, 1999, стр 611–622.

[2] Roweis, S. “Алгоритмы EM для PCA и SPCA”. В Продолжениях 1 997 Конференций по Усовершенствованиям в Нейронных Системах обработки информации. Vol.10 (NIPS 1997), Кембридж, MA, США: Нажатие MIT, 1998, стр 626–632.

[3] Ilin, A. и Т. Райко. “Практические Подходы к Анализу главных компонентов в присутствии Отсутствующих значений”. Дж. Мах. Учиться. Res.. Издание 11, август 2010, стр 1957–2000.

Смотрите также

| | | | | | |

Введенный в R2013a