<p>As thoroughly exaplained in: <a href="http://net.pku.edu.cn/~course/cs402/2012/book/%5BMahout.in.Action%282011%29%5D.Sean.Owen.pdf" rel="nofollow">http://net.pku.edu.cn/~course/cs402/2012/book/%5BMahout.in.Action%282011%29%5D.Sean.Owen.pdf</a></p>

<p>Canopies aren't normally used for clustering, but merely as a single-iteration pre-stage for k-means, for choosing the initial k centroids.</p>

<p>But, if you insist on using the canopies as clusters, you can ask CanopyDriver to also cluster the data, and it will use the closest canopy for each point:</p>

<pre><code>      Canopy closest = clusterer.findClosestCanopy(vw.get(), clusters);
      writer.append(new IntWritable(closest.getId()),
          new WeightedVectorWritable(1, vw.get()));
</code></pre>

CC BY-SA 3.0
2013-05-03T14:52:43.953Z
2013-05-03T14:52:43.953Z
ihadanny
<p>In canopy clustering <a href="http://www.kamalnigam.com/papers/canopy-kdd00.pdf" rel="nofollow">http://www.kamalnigam.com/papers/canopy-kdd00.pdf</a>, if a sample falls in an overlap of 2 canopies, how do we choose its cluster? </p>

CC BY-SA 3.0
2013-07-03T18:10:15.660Z
Please provide some background and make the question self-contained.
Kaveh
<machine-learning><clustering>
Canopy clustering: what should we do with samples in overlapping canopies?
ihadanny
# Canopy clustering: what should we do with samples in overlapping canopies?

(Asked by: username_0 on 2013-05-02)

In canopy clustering <http://www.kamalnigam.com/papers/canopy-kdd00.pdf>, if a sample falls in an overlap of 2 canopies, how do we choose its cluster?

**Tags:** machine-learning, clustering

> **Comments:**
> **username_1**: Please provide some background and make the question self-contained.  

---

## 1 answers

### Answer by username_0 on 2013-05-03. Score: -1

As thoroughly exaplained in: http://net.pku.edu.cn/~course/cs402/2012/book/%5BMahout.in.Action%282011%29%5D.Sean.Owen.pdf
Canopies aren't normally used for clustering, but merely as a single-iteration pre-stage for k-means, for choosing the initial k centroids.
But, if you insist on using the canopies as clusters, you can ask CanopyDriver to also cluster the data, and it will use the closest canopy for each point:
      Canopy closest = clusterer.findClosestCanopy(vw.get(), clusters);
      writer.append(new IntWritable(closest.getId()),
          new WeightedVectorWritable(1, vw.get()));


---

