Анализ основных компонентов в Java
Я пытаюсь добиться умножения в массиве для выполнения PCA в Java
Я вычислил среднее значение и вычел его из каждого значения x. Далее мне нужно найти ковариацию
Итак, чтобы найти, что мне нужно умножить все комбинации в данном массиве
[a,b,c] --> (aa)(ab)(ac)(bb)(bc)(cc)
Как построить матрицу из всех возможных продуктов?
Решает ли проблема подмножество и умножение?
1 ответ
Решение
Вы вычисляете матричный продукт. Сказать A = [a, b, c]
(горизонтальный вектор), вы получите явно симметричную матрицу по:
M = t A.
Верхняя часть матрицы состоит из всех возможных продуктов.
aa ab ac
ba bb bc
ca cb cc
При вычислении вы можете использовать симметрию:
for(int i=0; i<len; i++) {
for (int j=0; j<=i; j++) { // do not go up to len but stop at i ...
// computations ...
}
}