Lanczos may be more accurate than SSVD, but if you use a power step or three, this difference goes away as well.
The best way to select k is actually to pick a value k_max larger than you expect to need and then pick random vectors instead of singular vectors. To evaluate how many singular vectors you really need, substitute more and more of the components of the random vectors with values from the singular vectors. It is common that the best k_max will be 100-300 for text applications, but it is also common that the best k < k_max is much, much smaller. The reason that this is a better selection method is because a) random word vectors actually work pretty well because they maintain approximate independence of words and b) after k gets to a certain (pretty darned small) size, all the SVD is doing is acting as a very fancy and slow random number generator. On Mon, Mar 30, 2015 at 12:00 PM, Dmitriy Lyubimov <dlie...@gmail.com> wrote: > I am not aware of _any_ scenario under which lanczos would be faster (see > N. Halko's dissertation for comparisons), although admittedly i did not > study all possible cases. > > having -k=100 is probably enough for anything. I would not recommend > running -q>0 for k>100 as it would become quite slow in power iterations > step. > > to your other questions, e.g. U*sigma result output, see "overview and > usage" link given here: > http://mahout.apache.org/users/dim-reduction/ssvd.html > > On Mon, Mar 30, 2015 at 2:19 AM, Donni Khan <prince.don...@googlemail.com> > wrote: > > > Hallo Suneel, > > Thanks for fast reply. > > Is SSVD like SVD? which one is better? > > I run the SSVD by java code on my data, but how do I compute U*Sigma? > Can > > I do that by Mahout? > > Is there optimal method to determin K? > > > > another quesion is how do I make the relation between ssvd output and > > words dictionary(real words)? > > > > Thank you > > Donni > > > > On Mon, Mar 30, 2015 at 10:04 AM, Suneel Marthi <suneel.mar...@gmail.com > > > > wrote: > > > > > Here are the steps if u r using Mahout-mrlegacy in the present Mahout > > > trunk: > > > > > > 1. Generate tfidf vectors from the input corpus using seq2sparse (I am > > > assuming you had done this before and hence avoiding the details) > > > > > > 2. Run SSVD on the generated tfidf vectors from (1) > > > > > > ./bin/mahout ssvd -i <tfidf vectors> -o <svd output> -k 80 -pca > > true > > > -us true -U false -V false > > > > > > k = no. of reduced basis vectors > > > > > > You would need the U*Sigma output of the PCA flow for the next > > > clustering step > > > > > > 3. Run KMeans (or any other clustering algo) with the U*Sigma from (2) > as > > > input. > > > > > > > > > On Mon, Mar 30, 2015 at 3:39 AM, Donni Khan < > > prince.don...@googlemail.com> > > > wrote: > > > > > > > Hallo Mahout users, > > > > > > > > I'm working on text clustering, I would like to reduce the features > to > > > > enhance the clustering process. > > > > I would like to use the Singular Value Decomposition before > cluatering > > > > process. I will be thankfull if anyone has used this before, Is it a > > good > > > > idea for clustering? > > > > Is there any other method in mahout to reduce the text features > before > > > > clustring? > > > > Is anyone has idea how can I apply SVD by using Java code? > > > > > > > > Thanks in advance, > > > > Donni > > > > > > > > > >