You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ak...@apache.org on 2017/02/03 23:42:54 UTC
svn commit: r1781625 -
/mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext
Author: akm
Date: Fri Feb 3 23:42:54 2017
New Revision: 1781625
URL: http://svn.apache.org/viewvc?rev=1781625&view=rev
Log:
Formatting
Modified:
mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext
Modified: mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext
URL: http://svn.apache.org/viewvc/mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext?rev=1781625&r1=1781624&r2=1781625&view=diff
==============================================================================
--- mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext (original)
+++ mahout/site/mahout_cms/trunk/content/users/algorithms/d-spca.mdtext Fri Feb 3 23:42:54 2017
@@ -10,7 +10,7 @@ Mahout has a distributed implementation
Given an *m* `\(\times\)` *n* matrix `\(\mathbf{A}\)`, a target rank *k*, and an oversampling parameter *p*, this procedure computes a *k*-rank PCA by finding the unknowns in `\(\mathbf{A−1\mu^\top \ge U\Sigma V}\)`:
1. Create seed for random *n* `\(\times\)` *(k+p)* matrix `\(\Omega\)`.
-2. `\(s_\Omega \leftarrow \Omega^\top \mu\)`.
+2. `\(\mathbf{s_\Omega \leftarrow \Omega^\top \mu}\)`.
3. `\(\mathbf{Y_0 \leftarrow A\Omega − 1 {s_\Omega}^\top, Y \in \mathbb{R}^{m\times(k+p)}}\)`.
4. Column-orthonormalize `\(\mathbf{Y_0} \rightarrow \mathbf{Q}\)` by computing thin decomposition `\(\mathbf{Y_0} = \mathbf{QR}\)`. Also, `\(\mathbf{Q}\in\mathbb{R}^{m\times(k+p)}, \mathbf{R}\in\mathbb{R}^{(k+p)\times(k+p)}\)`.
5. `\(\mathbf{s_Q \leftarrow Q^\top 1}\)`.
@@ -18,7 +18,7 @@ Given an *m* `\(\times\)` *n* matrix `\(
7. `\(\mathbf{s_B \leftarrow {B_0}^\top \mu}\)`.
8. For *i* in 1..*q* repeat (power iterations):
- For *j* in 1..*n* apply `\(\mathbf{(B_{i−1})_{∗j} \leftarrow (B_{i−1})_{∗j}−\mu_j s_Q}\)`.
- - `\(\mathbf{Y_i \leftarrow (A{B_{i−1}}^\top)−1(s_B−\mu^\top \mu s_Q)^\top)}\)`.
+ - `\(\mathbf{Y_i \leftarrow A{B_{i−1}}^\top−1(s_B−\mu^\top \mu s_Q)^\top}\)`.
- Column-orthonormalize `\(\mathbf{Y_i} \rightarrow \mathbf{Q}\)` by computing thin decomposition `\(\mathbf{Y_i = QR}\)`.
- `\(\mathbf{s_Q \leftarrow Q^\top 1}\)`.
- `\(\mathbf{B_i \leftarrow Q^\top A}\)`.
@@ -27,7 +27,7 @@ Given an *m* `\(\times\)` *n* matrix `\(
10. Compute an eigensolution of the small symmetric `\(\mathbf{M = \hat{U} \Lambda \hat{U}^\top: M \in \mathbb{R}^{(k+p)\times(k+p)}}\)`.
11. The singular values `\(\Sigma = \Lambda^{\circ 0.5}\)`, or, in other words, `\(\mathbf{\sigma_i= \sqrt{\lambda_i}}\)`.
12. If needed, compute `\(\mathbf{U = Q\hat{U}}\)`.
-13. If needed, compute `\(\mathbf{V = B^\top \hat{U} \Sigma^{−1}}\)`. Another way is `\(\mathbf{V = A^\top U\Sigma^{−1}}\).
+13. If needed, compute `\(\mathbf{V = B^\top \hat{U} \Sigma^{−1}}\)`. Another way is `\(\mathbf{V = A^\top U\Sigma^{−1}}\)`.
14. If needed, items converted to the PCA space can be computed as `\(\mathbf{U\Sigma}\)`.
## Implementation