+1 Paritosh, this is exactly what I envisioned. And I also like your
idea of first converting them all to use ClusterWritable. Go for it!
On 3/15/12 10:42 AM, Paritosh Ranjan wrote:
I saw the code and my understanding of the new implementation is:
a) K-Means, Fuzzy K-Means and Dirichlet will ClusterIterator and write
IntWritable, ClusterWritbale in buildClusters phase ( Instead of
Kluster, SoftCluster and DirichletCluster )
b) Canopy and MeanShift will NOT use ClusterIterator but will emit
IntWritable, ClusterWritable ( Instead of Canopy and MeanShiftCanopy )
There are tools ( ClusterDumper and ClusterEvaluator ) which expect
<Cluster> when they read from the output file after clustering ( ~
buildCluster phase ).
KMeans is expecting Canopy and KCluster, but will get ClusterWritable.
So, everything needs to be in sync ( i.e. ClusterWritable )
I propose to wrap everything in ClusterWritable first, as everything
is a Cluster ( eg. DirichletCluster, SoftCluster, Kluster, Canopy and
MeanShiftCanopy ). This will remove the inconsistency without much
chaos. Once ClusterWritable is uniformly used, then refactor all
algorithms.
I am also not against making ClusterDumper unavailable for a week or
so since we have ClusterOutputPostProcessor now.
Is my understanding correct? If not, please help me understand it.
If yes, which way do you propose to refactor?
On 15-03-2012 19:24, Jeff Eastman wrote:
Yes, that was my point. below It may, in fact, be impossible to
implement and commit them independently since so much of Mahout
clustering depends upon the Cluster sequenceFile. You may be able to
get part way by moving the Canopy mods into the kmeans issue, but
then the cluster dumper and evaluator will not work with kmeans.
Ideas?
On 3/14/12 10:15 PM, Paritosh Ranjan wrote:
Thanks Jeff. One question, are "Use ClusterIterator" tasks dependent
on "Modify Canopy etc to use ClusterWritable" task ?
I am assuming that all subtasks in MAHOUT-933
<https://issues.apache.org/jira/browse/MAHOUT-933> are independent
of each other and the order to pick them does not matter. Am I correct?
On 15-03-2012 09:23, Jeff Eastman wrote:
Sure Paritosh, go ahead and take a crack at it. I am moving from CO
to PA for the next few weeks and won't be able to do much coding
during that period. I suspect you will also need to modify Canopy
to emit ClusterWritable and also the RandomSeedGenerator.
Smooth sailing,
Jeff
On 3/14/12 8:28 PM, Paritosh Ranjan (Commented) (JIRA) wrote:
[
https://issues.apache.org/jira/browse/MAHOUT-988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13229840#comment-13229840
]
Paritosh Ranjan commented on MAHOUT-988:
----------------------------------------
Jeff, I would like to work on this issue (or MAHOUT-989, or
MAHOUT-990). Can I? I might also need some help ( at least the
first patch review ).
Convert K-means buildClusters to use new ClusterIterator
--------------------------------------------------------
Key: MAHOUT-988
URL:
https://issues.apache.org/jira/browse/MAHOUT-988
Project: Mahout
Issue Type: Sub-task
Components: Clustering
Affects Versions: 0.6
Reporter: Jeff Eastman
Assignee: Jeff Eastman
Fix For: 0.7
Refactor the current K-means implementation to use the
ClusterIterator/Classifier implementation. This will replace the
mapper, combiner, reducer, clusterer and many unit tests but will
not modify the other driver APIs, thus retaining compatibility
with existing CLI.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA
administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira