Quelle est la différence entre ces deux algorithmes ?
Un autre point de données : Trouver les deux plus proches voisins parmi 1 640 points en 24 dimensions pour environ 50 000 vecteurs de test : KDTree - 2m 32s / cKDTree - 360ms.
Quelle est la différence entre ces deux algorithmes ?
cKDTree est un sous-ensemble de KDTree implémenté en C++ enveloppé dans Cython, donc plus rapide.
Chacun d'entre eux est
un trie binaire, dont chacun des nœuds représente un hyperrectangle aligné sur l'axe. Chaque nœud spécifie un axe et divise l'ensemble des points selon que leur coordonnée le long de cet axe est supérieure ou inférieure à une valeur particulière.
mais KDTree
supporte également les requêtes tous voisins, à la fois avec des tableaux de points et avec d'autres kd-trees. Ces requêtes utilisent un algorithme raisonnablement efficace, mais le kd-tree n'est pas nécessairement la meilleure structure de données pour ce type de calcul.
Un autre point de données : Trouver les deux plus proches voisins parmi 1 640 points en 24 dimensions pour environ 50 000 vecteurs de test : KDTree - 2m 32s / cKDTree - 360ms.
Actuellement, les deux ont quasiment les mêmes API, et cKDTree
est plus rapide que KDTree
. Ainsi, dans un avenir proche, les développeurs de SciPy prévoient de supprimer les éléments suivants KDTree
y cKDTree
sera renommé en KDTree
d'une manière rétrocompatible.
Réf : Feuille de route SciPy détaillée - Guide de référence SciPy v1.6.0.dev https://docs.scipy.org/doc/scipy/reference/roadmap-detailed.html#spatial
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Également
cKDTree
sera plus facilement enfilé parce qu'il ne souffre pas de laGIL
(voirscipy.spatial
pour plus d'informations). Je ne suis pas sûr de la version de l'outil de gestion de l'information.cKDTree
a été mis en œuvre sans leGIL
.