Обработайте столбцы матрицы с анализом основных компонентов
[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.