And I'll add that re-vectorizing the documents with my vectorizer yields essentially the same results (this is CosineDistance though):
Average distance in cluster 0 [6]: 0.844053 Average distance in cluster 1 [1047]: 0.988517 Average distance in cluster 2 [26]: 0.889580 Average distance in cluster 3 [19]: 0.922804 Average distance in cluster 4 [2]: 0.414935 Average distance in cluster 5 [9]: 0.777650 Average distance in cluster 6 [4]: 0.791443 Average distance in cluster 7 [17432]: 1.017289 Average distance in cluster 8 [20]: 0.917523 Average distance in cluster 9 [4]: 0.744159 Average distance in cluster 10 [2]: 0.340740 Average distance in cluster 11 [3]: 0.614734 Average distance in cluster 12 [2]: 0.624274 Average distance in cluster 13 [62]: 0.922437 Average distance in cluster 14 [2]: 0.324862 Average distance in cluster 15 [1]: 0.000000 Average distance in cluster 16 [94]: 0.917509 Average distance in cluster 17 [103]: 0.944392 Average distance in cluster 18 [7]: 0.795449 Average distance in cluster 19 [1]: 0.000000 Num clusters: 20; maxDistance: 1.029701 On Thu, Mar 28, 2013 at 6:45 PM, Dan Filimon <[email protected]>wrote: > You know what's even more odd? When I used Mahout's KMeans, everything was > assigned to one single cluster with mean distance 64. > > > On Thu, Mar 28, 2013 at 11:07 AM, Ted Dunning <[email protected]>wrote: > >> Hmm... looking at these outputs, it looks like the big cluster is really >> tight ... much tighter than cluster 3 or 4. That is very odd. >> >> On Thu, Mar 28, 2013 at 10:01 AM, Dan Filimon >> <[email protected]>wrote: >> >> > [Yes, it should be on the dev list. I got confused.] >> > >> > The thing is, it's happening when using just 1 mapper. The hypercube >> > tests indicate that the 3 versions of StreamingKMeans produce about >> > the same results. >> > I haven't tested them on the _unprojected_ vectors though. >> > >> > Average distance in cluster 0 [18773]: 68.237385 >> > Average distance in cluster 1 [2]: 5.973227 >> > Average distance in cluster 2 [1]: 0.000000 >> > Average distance in cluster 3 [4]: 279.200390 >> > Average distance in cluster 4 [5]: 394.101672 >> > Average distance in cluster 5 [4]: 227.845612 >> > Average distance in cluster 6 [1]: 0.000000 >> > Average distance in cluster 7 [2]: 28.779806 >> > Average distance in cluster 8 [1]: 0.000000 >> > Average distance in cluster 9 [2]: 215.254876 >> > Average distance in cluster 10 [3]: 128.501163 >> > Average distance in cluster 11 [8]: 534.401649 >> > Average distance in cluster 12 [1]: 0.000000 >> > Average distance in cluster 13 [5]: 405.115140 >> > Average distance in cluster 14 [1]: 0.000000 >> > Average distance in cluster 15 [9]: 215.797289 >> > Average distance in cluster 16 [1]: 0.000000 >> > Average distance in cluster 17 [2]: 123.065677 >> > Average distance in cluster 18 [1]: 0.000000 >> > Average distance in cluster 19 [2]: 98.733778 >> > Num clusters: 20; maxDistance: 762.326896 >> > >> > On Thu, Mar 28, 2013 at 10:32 AM, Ted Dunning <[email protected]> >> > wrote: >> > > I will have to think on this a bit. >> > > >> > > It should be possible to dump the sketches coming from each mapper and >> > look >> > > at them for compatibility. >> > > >> > > Are the mappers seeing only docs from a single news group? That might >> > > produce some interesting and odd results. >> > > >> > > What happens with the sequential version when you specify as many >> threads >> > > as you have mappers in the MR version? >> > > >> > > Also, sholdn't this be on the dev list? >> > > >> > > On Thu, Mar 28, 2013 at 9:10 AM, Dan Filimon < >> > [email protected]>wrote: >> > > >> > >> So no, apparently the problem's still there. With the most recent >> code, >> > I >> > >> get: >> > >> >> > >> Average distance in cluster 0 [1]: 0.000000 >> > >> Average distance in cluster 1 [18775]: 63.839819 >> > >> Average distance in cluster 2 [11]: 448.706077 >> > >> Average distance in cluster 3 [1]: 0.000000 >> > >> Average distance in cluster 4 [8]: 213.629578 >> > >> Average distance in cluster 5 [1]: 0.000000 >> > >> Average distance in cluster 6 [10]: 369.592682 >> > >> Average distance in cluster 7 [1]: 0.000000 >> > >> Average distance in cluster 8 [2]: 31.061103 >> > >> Average distance in cluster 9 [1]: 0.000000 >> > >> Average distance in cluster 10 [2]: 309.934857 >> > >> Average distance in cluster 11 [1]: 0.000000 >> > >> Average distance in cluster 12 [1]: 0.000000 >> > >> Average distance in cluster 13 [1]: 0.000000 >> > >> Average distance in cluster 14 [1]: 0.000000 >> > >> Average distance in cluster 15 [4]: 229.180504 >> > >> Average distance in cluster 16 [1]: 0.000000 >> > >> Average distance in cluster 17 [3]: 336.835246 >> > >> Average distance in cluster 18 [2]: 76.485594 >> > >> Average distance in cluster 19 [1]: 0.000000 >> > >> Num clusters: 20; maxDistance: 724.060033 >> > >> >> > >> I'll have to recheck. :/ >> > >> >> > >> On Thu, Mar 28, 2013 at 2:25 AM, Ted Dunning <[email protected]> >> > >> wrote: >> > >> > Hot damn! >> > >> > >> > >> > Well spotted. >> > >> > >> > >> > On Thu, Mar 28, 2013 at 12:08 AM, Dan Filimon >> > >> > <[email protected]>wrote: >> > >> > >> > >> >> Ted, remember we talked about this last week? >> > >> >> >> > >> >> The problem was (I think it's fixed now) that when I was asking >> for >> > 20 >> > >> >> clusters, every mapper would give me 20 clusters (rather than k >> log n >> > >> >> ~ 200) and the points clumped together resulting in one cluster >> with >> > >> >> the vast majority of the points ~17K out the ~19K. >> > >> >> >> > >> >> Now that I fixed that added more tests that seem to be confirming >> all >> > >> >> StreamingKMeans implementations get about the same results >> (whether >> > >> >> they're local or MapReduce) and the multiple restarts of >> BallKMeans, >> > >> >> I'm expecting it to be a lot better. >> > >> >> >> > >> >> Actual data tests coming soon (please check that new cluster >> > thread). :) >> > >> >> >> > >> >> > >> > >
