2013-05-21 2 views
2

Mahout, Java에서 기계 학습을 시도하고 있습니다. MySQL과 함께 원하는 모든 데이터를 다운로드했습니다. 내가 갇혀있는 지점은 "SparseRowMatrix"유형의 변수에 모든 계산과 재배치가 완료되었을 때입니다. 난 그저 내가 맞는 볼 수있는 두 가지 방법 중 하나를 호출하는 방법을 이해하지 않습니다Mahout의 Lanczsos-Eigenvector

1) org.apache.mahout.math.decomposer.lanczos.LanczosSolver

2) org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver

어떤 조언이 시점에서 도움이됩니다!

답변

3

DistributedLanczosSolverTool 인터페이스를 구현, 그래서 당신은 예를 들어, 일반 하둡 작업으로 실행할 수 있습니다 : 사용

hadoop jar $MAHOUT_HOME/mahout-examples-0.5-job.jar org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver --input /path/to/input --output /path/to/output --numCols 42 --numRows 42 --cleansvd "true" --rank 5 

또한 자바에서 직접 호출 할 수 있습니다 :

ToolRunner.run(new DistributedLanczosSolver().job(), args); 

을 또는 경우 당신은 분산 된 방식으로 그것을 할 필요가 없습니다. LanczosSolver.solve 메쏘드가 당신이 찾고있는 것이고, 여러분은 여러분의 행렬과 고유 벡터와 고유 값을 전달해야합니다. 설명 할 수없는 Lanczos 알고리즘을 사용하여 두건 뒤에서 복잡한 작업을 수행하므로 더 명확하게 직접적으로 살펴볼 것을 권장합니다. in the source code.

+0

아주 좋은 대답입니다. 나는 내가 불분명하다고 생각한다. 고유 벡터와 고유 값을 얻기 위해 행렬 만 전달하려고합니다. 이것은 여전히 ​​동일한 기본 방법입니까? – user1597652

관련 문제