Обработайте столбцы матрицы с анализом основных компонентов
[Y,PS] = processpca(X,maxfrac)
[Y,PS] = processpca(X,FP)
Y = processpca('apply',X,PS)
X = processpca('reverse',Y,PS)
name = processpca('name')
fp = processpca('pdefaults')
names = processpca('pdesc')
processpca('pcheck',fp);
processpca обрабатывает матрицы с помощью анализа основных компонентов так, чтобы каждая строка была некоррелирована, строки были в порядке суммы, которую они вносят в общее изменение, и строки, чей вклад в общее изменение меньше maxfrac удаляются.
[Y,PS] = processpca(X,maxfrac) принимает X и необязательный параметр,
X |
|
maxfrac | Максимальная доля отклонения для удаленных строк (по умолчанию 0) |
и возвращает
Y |
|
PS | Настройки процесса, которые позволяют последовательно обрабатывать значения |
[Y,PS] = processpca(X,FP) принимает параметры как struct: FP.maxfrac.
Y = processpca('apply',X,PS) возвращает Y, заданные X и настройки PS.
X = processpca('reverse',Y,PS) возвращает X, заданные Y и настройки PS.
name = processpca('name') возвращает имя этого метода процесса.
fp = processpca('pdefaults') возвращает структуру параметра процесса по умолчанию.
names = processpca('pdesc') возвращает описание параметров процесса.
processpca('pcheck',fp); выдает ошибку, если какой-либо параметр недопустим.
Вот как форматировать матрицу с независимой строкой, коррелированной строкой и полностью избыточной строкой так, чтобы ее строки были некоррелированы, а избыточная строка была удалена.
x1_independent = rand(1,5) x1_correlated = rand(1,5) + x1_independent; x1_redundant = x1_independent + x1_correlated x1 = [x1_independent; x1_correlated; x1_redundant] [y1,ps] = processpca(x1)
Затем примените те же параметры обработки к новым значениям.
x2_independent = rand(1,5)
x2_correlated = rand(1,5) + x1_independent;
x2_redundant = x1_independent + x1_correlated
x2 = [x2_independent; x2_correlated; x2_redundant];
y2 = processpca('apply',x2,ps)
Противоположная обработка y1 чтобы получить x1 снова.
x1_again = processpca('reverse',y1,ps)
Значения в строках, элементы которых не все одинаковые значения, установлены в
y = 2*(x-minx)/(maxx-minx) - 1;
Значения в строках с одним и тем же значением устанавливаются равными 0.