J'ai un ensemble de données pour lequel j'ai besoin de trouver les K voisins les plus proches, ou tous les voisins dans une distance d. L'ensemble de données a une distance personnalisée définie, mais ce n'est pas une distance euclidienne.Y a-t-il une structure de données de plus proche voisin basée sur le disque?
J'ai déjà utilisé metric trees, principalement l'arbre de couverture. Dans ce cas, cependant, mon ensemble de données va être plus grand que la mémoire disponible. Donc, y a-t-il une structure de données qui peut être utilisée pour les voisins les plus proches sur un jeu de données stocké sur disque? Un bon index de base de données pour cette opération serait également utile.
Cela ne serait pas efficace car les informations supplémentaires de l'enregistrement sont l'ensemble de l'enregistrement (pensez à des distances entre des documents ou des images). J'espérais minimiser l'accès au disque, et l'arbre de couverture n'est pas spécialement optimisé pour cela autant que je sache. –
Je suppose que je ne comprends pas. Les documents ou les images ne peuvent-ils pas être stockés sur le disque et l'index contient-il la distance calculée et un pointeur vers l'emplacement du disque du document ou de l'image? –
J'espérais quelque chose qui minimise le nombre d'accès disque, car chaque calcul de la distance nécessite au moins de charger un document entier à partir de la base de données. En pratique, l'arbre de couverture avec votre performance d'indice était satisfaisant pour mes besoins. –