<div dir="ltr">Yes, use an approximate nearest neighbors approach. None is included in scikit-learn, but there are numerous implementations with Python interfaces.</div><div class="gmail_extra"><br><div class="gmail_quote">On 5 January 2018 at 12:51, Shiheng Duan <span dir="ltr"><<a href="mailto:shiduan@ucdavis.edu" target="_blank">shiduan@ucdavis.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thanks, Joel,</div><div></div><div>I am working on KD-tree to find the nearest neighbors. Basically, I find the nearest neighbors for each point and then merge a couple of points if they are both NN for each other. The problem is that after each iteration, we will have a new bunch of points, where new clusters are added. So the tree needs to be updated. Since I didn't find any dynamic way to update the tree, I just rebuild it after each iteration, costing lots of time. Any idea about it? </div><div></div><div>Actually, it takes around 16 mins to build the tree in the first iteration, which is not slow I think. But it still runs slowly. I have a dataset of 12*872505 (features, samples). It takes several days to run the program. Is there any way to speed up the query process of NN? I doubt query may be too slow. </div><div></div><div>Thanks for your time. </div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 4, 2018 at 3:55 AM, Joel Nothman <span dir="ltr"><<a href="mailto:joel.nothman@gmail.com" target="_blank">joel.nothman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Can you use nearest neighbors with a KD tree to build a distance matrix that is sparse, in that distances to all but the nearest neighbors of a point are (near-)infinite? Yes, this again has an additional parameter (neighborhood size), just as BIRCH has its threshold. I suspect you will not be able to improve on having another, approximating, parameter. You do not need to set n_clusters to a fixed value for BIRCH. You only need to provide another clusterer, which has its own parameters, although you should be able to experiment with different "global clusterers".</div><div class="m_2570416330067282928HOEnZb"><div class="m_2570416330067282928h5"><div class="gmail_extra"><br><div class="gmail_quote">On 4 January 2018 at 11:04, Shiheng Duan <span dir="ltr"><<a href="mailto:shiduan@ucdavis.edu" target="_blank">shiduan@ucdavis.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Yes, it is an efficient method, still, we need to specify the number of clusters or the threshold. Is there another way to run hierarchy clustering on the big dataset? The main problem is the distance matrix. </div><div></div><div>Thanks. </div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_2570416330067282928m_-2631644403449207878h5">On Tue, Jan 2, 2018 at 6:02 AM, Olivier Grisel <span dir="ltr"><<a href="mailto:olivier.grisel@ensta.org" target="_blank">olivier.grisel@ensta.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_2570416330067282928m_-2631644403449207878h5"><div dir="ltr"><div>Have you had a look at BIRCH?<br><br><a href="http://scikit-learn.org/stable/modules/clustering.html#birch" target="_blank">http://scikit-learn.org/stable<wbr>/modules/clustering.html#birch</a><span class="m_2570416330067282928m_-2631644403449207878m_-3695277785610121112HOEnZb"><font color="#888888"><br><br>-- <br></font></span></div><span class="m_2570416330067282928m_-2631644403449207878m_-3695277785610121112HOEnZb"><font color="#888888">Olivier<br>​</font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
scikit-learn mailing list<br>
<a href="mailto:scikit-learn@python.org" target="_blank">scikit-learn@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scikit-learn" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/scikit-learn</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
scikit-learn mailing list<br>
<a href="mailto:scikit-learn@python.org" target="_blank">scikit-learn@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scikit-learn" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/scikit-learn</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
scikit-learn mailing list<br>
<a href="mailto:scikit-learn@python.org" target="_blank">scikit-learn@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scikit-learn" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/scikit-learn</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
scikit-learn mailing list<br>
<a href="mailto:scikit-learn@python.org">scikit-learn@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scikit-learn" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/scikit-learn</a><br>
<br></blockquote></div><br></div>