2017-11-10 15 views
1

대용량의 양수 값 행렬을 계산 한 다음 AWB로 이동하여 일부 주요 고유 벡터 및 고유 값을 복구하는 SVD/고유 점을 계산합니다. 행렬의 가장자리 크기가 100K 이상일 수 있으므로 Spark에서 분산 연산자를 찾고 곧바로 scipy/numpy svd 연산자보다 SVD를 빠르게 수행 할 수 있습니다. 희박하다는 가정을하지 않습니다. 누군가가 스파크를 사용하여 SVD를 수행하는 방법에 대해 조언 할 수 있습니까?스파크를 사용하는 aws에서 파이썬의 대형 행렬 SVD

+0

되지 않음 대답 (스파크와 함께 할 아무것도)하지만,이 [MathSE 질문] (https://math.stackexchange.com/questions/694339/parallel-algorithms-for-svd) 도움이 될 수 있습니다. – Nick

+0

둘러보기 https://stanford.edu/~rezab/papers/linalg.pdf – MishaVacic

+0

Spark 버전은 무엇입니까? SVD 기능은 [2.2에 추가되었습니다] (https://spark.apache.org/docs/2.2.0/api/python/pyspark.mllib.html#pyspark.mllib.linalg.distributed.SingularValueDecomposition) – desertnaut

답변

0

스파크 버전 2.2.0에는 특이 값 분해를위한 파이썬 API가 있습니다.

# convert your rdd into RowMatrix 
rm = RowMatrix(data_rdd) 
# if number of components you wish to retain is p then 
svd = rm.computeSVD(p, True) 
U = svd.U 
S = svd.S 
V = svd.V