Анализ основных компонентов в 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 ...
    }
}
Другие вопросы по тегам