Re: Add low-memory special case for Euclidean single-linkage clustering

Julien Jerphanion <[email protected]> Thu, 06 Jul 2023 12:16:29 +0000
Newsgroups gmane.comp.python.scientific.devel
Message-ID <h9PxMRhp15Hr1muMOSs0H4AcITki1pTGmFG8_GiZidWfh7VYq8GJVRrgKwkR6lVmVoIErisWasKCpFyvG549noHTEXwtWeRieGzCgYQ4Cwc=@jjerphan.xyz>
Hi,

OK, thank you for reporting that. I do not think `AgglomerativeClustering` would be suitable for now.

The implementation uses a UnionFind, but it seems that other parts of the
implementations are costly.

I can look into that when I get time one day.

Julien.


------- Original Message -------
On Wednesday, July 5th, 2023 at 11:50 PM, Mathias Rav <[email protected]> wrote:


> On Wed, 05 Jul 2023 20:39:37 +0000
> Julien Jerphanion [email protected] wrote:
> 

> > I think that `sklearn.cluster.AgglomerativeClustering`ยน implements
> > what you propose.
> > 

> > This implementation also supports other dissimilarities such as the
> > cosine dissimilarity and the Manhattan distance.
> 

> 

> Hi Julien
> 

> Thanks for the pointer! I just tried to run AgglomerativeClustering with
> linkage="single" on 10k, 20k, 40k, 80k 2-d points and the runtimes
> indicate a super-quadratic time complexity: 0.33, 1.45, 5.96, 24.2 s.
> 

> Given that my use case involves around 200k points in 3-d,
> I'd like something closer to O(N log N) time - is that possible with
> AgglomerativeClustering?
> 

> Cheers,
> Mathias
> _______________________________________________
> SciPy-Dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/scipy-dev.python.org/
> Member address: [email protected]

_______________________________________________
SciPy-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/scipy-dev.python.org/
Member address: [email protected]
publickey - [email protected] - 0xDEDBF4EA.asc (application/pgp-keys, 3 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
WFaaDg==
=/cO6
-----END PGP PUBLIC KEY BLOCK-----
signature.asc (application/pgp-signature, 855 B)
-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wsFzBAEBCAAnBYJkprCHCZBWtpCpfC41uBYhBN7b9Or9ieiZmPAnSVa2kKl8
LjW4AABtOQ//VCZzWAInPvVnSRRdGL8+XUnpBJ4BvKEOrJjyG1HxiWDsStTK
bf0XeKMQa2C3wXLGUqETmuDsEy1yQdmJnDBNyjjTqcPhpb0HOYnEdK8Gqhq8
68N+f295otWyLZ+ZNgTA2Y4Hl1AHSbSUerb6rSrN4H82JYGiwbQofINHvvyh
d4KuwDXrYY17W734+8wUw9JCOKcfzpqaxloLk4orBcDsRaKVtc9VBWs0x5Ld
7L/w6mxg5+IZ5hpYHru1jIf01q21SbZBhp5hIuZen6+e8vmcWA+OfF8AbgSg
KTfsxfUPwqEwmRkYW9/GiGZLzaegNwTxNgXFs9MMCpNubZdZ0aYwmS50Fqt0
iNVA+v73HkRk/RBpZ4mjAvLDnIZAE2B414Czp9ofbaoFRUyyYHTQsm92higJ
6zM8VexAtyx66BbPGUafNXw5+Z2PvbuIkMr65WIvq7ZRusvjpSMq8Gv6TVJh
hGK1cx69MQFfWZJHgVLhcsb3k3uQtRqtSTIHmWCzc1IU2ocjs9N9BJ4Ikk6B
RydDmYF9ZjzMH2CAJWyRis0ZA4nth8ulSVmXKMlvGd4vMir49uRGGi0zN3qb
6NnBJG+lgSWYqfxHWcg6J+XoI0j4SVsP0BTA7L9PAIgy5MzzAVxAjGx8BpLj
+RvPbxr7Vy0nuDyJzgkthLWtH+lpf4luI9c=
=F5xT
-----END PGP SIGNATURE-----