I can try to answer few :
1) I don't know.
2) Use org.apache.mahout.math.NamedVector to identify clusters.
3) Yes, new points can be identified without clustering all over again. See
org.apache.mahout.clustering.classify.ClusterClassifier
org.apache.mahout.clustering.iterator.ClusterIterator
org.apache.mahout.clustering.classify.ClusterClassificationDriver
4) I don't think there is any built in implementation for this.
5) AFAIK, clustering algorithms take sequence files as input, there is
no support for DB.
6) Yes, it is possible. Though you will have to write some code. See
answer to question 3.
7) No, there is no refresh method sort of thing.
HTH
On 12-08-2012 22:58, arindam chakraborty wrote:
I am considering clustering (Canopy or k-means) to build a recommender but
I have following uncertainties. If someone can please clarify them, it will
be really helpful.
My vector will be points of 8-dimensions. I will expect the clustering
phase to group close points in respective clusters. The output is where I
am stuck, as to how I can interpret them
1. Since main aim is to recommend similar objects, assumption is that
points in the same cluster will be similar. So Is there a RECOMMENDER based
on the clustering output, or I would have to build that logic manually
2. Since output will have a list of vectors in one cluster (and they
will not be unique) how do I identify them. i.e., which resulting point
means which object, so that I know Object A, B, C are in the same cluster
or not.
3. For a new object P, is there a way to find out its cluster, or I will
have to re-build the clusters all over again
4. In a cluster, say I do identify an object P somehow, how can I figure
out the closest n points to it. Is there any built-in method or I would
have to write my own implementation
5. Can I provide a data source like a DB to the cluster, so that it can
work on the changed rows to fit them in their respective clusters. Or I
would have to rebuild the clusters
6. Can an object O be added to a cluster in real time? Can I find out
its closest points from the cluster in real time. [SIMILAR TO POINT 3 & 4 ]
7. Does the cluster need to be rebuilt on every addition to my source
data? Or it can identify the delta, and readjust it. Is there a refresh()
method as there are for Recommenders?
If you can answer one or more questions, it would be very useful.