PCA 썸네일형 리스트형 기계학습 - Spark(8) - PCA 코드분석2 Spark, .../mlib/feature/PCA.scala 코드를 분석한 글이다. PCA의 원리에 대해 이해를 하기 위해 소스를 분석했는데 조금은 원리를 알게 되었지만, 수학으로 인한 장벽은 여전했다. SPARK's PCA.sala1. 'pc'로 명칭된 값과 Explained Variance을 구한다.val mat = new RowMatrix(sources) val (pc, explainedVariance) = mat.computePrincipalComponentsAndExplainedVariance(k) 변수 pc : K값으로 보정된 SVD의 U행렬변수 explainedVariance : Explained Variance 2. 입력된 벡터들을 차례대로 pc에 곱한 결과를 구한다.pc.transpose.. 더보기 기계학습 - Spark(8) - PCA 코드분석1 Spark의 기계학습 교육사이트의 나머지 부분은 평이한 내용들이지만, 그중에 ngram과 PCA는 흥미로웠다. ngram은 개요만 읽어도 이해하는데 충분했다. PCA는 N차원의 벡터를 N보다 같거나 작은 차원의 벡터로 변한하는 것인데, 어떻게 구현이 되는지가 궁금했고, word2vec을 이해할 때와 만찬가지로 직접 구현 소스 코드를 분석해보기로 했다. 먼저 spark사이트에 나온 샘플예제는 최신버전에서 약간 문법오류가 있어보여 수정한 코드를 아래에 적는다.import org.apache.spark.ml.feature.PCAimport org.apache.spark.ml.linalg.Vectors val data = Array( Vectors.sparse(5, Seq((1, 1.0), (3, 7.0))),.. 더보기 이전 1 다음