J'ai vu une quantité raisonnable de documentation sur la façon de choisir les noyaux et les bandes passantes lors du calcul d'une estimation de la densité du noyau, mais je suis actuellement intéressé par la façon d'améliorer le temps nécessaire pour évaluer le KDE résultant à un nombre arbitraire de points.
Dans mon cas, j'utilise un noyau gaussien multidimensionnel (2D ou 3D) avec une covariance diagonale (c'est-à-dire que chaque dimension est indépendante). Les largeurs de bande dans chaque dimension peuvent différer et sont sélectionnées en utilisant les voisins les plus proches. Cependant, ma question s'étend probablement à différents noyaux et méthodes de sélection de bande passante.
Disons que j'ai points de données et souhaitent évaluer le KDE résultant à points de grille. Une implémentation simple consiste à évaluer le pdf normal multivariéfois. Pour mes fins, et sont à la fois de l'ordre de milliers, et l'évaluation est devenue le goulot d'étranglement dans mon code.
Je ne sais pas s'il existe des améliorations généralement acceptées à cette méthode de base. J'ai trouvé ce document, qui prétend réduire la complexité de à . Cependant, la méthode n'a été implémentée dans aucune bibliothèque R ou Python «standard» que je connaisse - ce qui suggère qu'elle n'a pas encore été largement adoptée?
Merci pour tous les conseils que vous pouvez donner.
la source