Инверсия матриц, умножение и собственные вычисления в Hadoop
Мне нужно выполнить эти три шага: - Найти инверсию квадратной симметричной матрицы - Умножить результат на другую квадратную симметричную матрицу - Наконец, найти собственные векторы и собственные значения результирующей матрицы
Код Python:
S_i = np.linalg.inv(S1)
S_m = S_i*S2
evector, evalue = np.linalg.eig(S_m)
Существует ли существующая реализация этих шагов в структуре Hadoop Map-Reduce?
Я знаю о реализации SVD в Mahout, и обратная матрица может быть вычислена с использованием SVD при условии, что в Hadoop есть эффективная реализация умножения. Кроме того, я не смог найти никакой реализации вычисления собственного вектора для Hadoop.
Любые предложения / указатели будут полезны.
1 ответ
Чтобы вписать вычисления векторов Eigen в MapReduce, вы можете взглянуть на это: http://en.wikipedia.org/wiki/Divide-and-conquer_eigenvalue_algorithm
Также этот ответ здесь, как реализовать вычисление собственных значений с MapReduce/Hadoop? подробности как
PageRank решает проблему доминантных собственных векторов, итеративно находя стационарное состояние дискретного потока в сети.