2015-08-11 2 views
1

J'ai une fonction définie dans un espace à n dimensions que je représente avec (X, Y), où X est un tableau de taille mxn contenant les entités en entrée et Y un tableau de taille mx1 contenant la sortie. Il y a donc m points dans un espace de dimension d avec m >> n.Comment lisser/filtrer une fonction dans un espace à n dimensions en utilisant python?

Je voudrais lisser les valeurs de Y (sortie). Dans le cas de 1 ou 2 dimensions j'utiliserais probablement des splines lissées. Dans le cas de n dimensions je ne sais pas vraiment ... J'ai pensé au filtre médian dans scipy (median_filter), mais je ne vois pas comment trouver des voisins dans X et aller chercher les valeurs correspondantes dans Y pour calculer la médiane .

Des idées? Merci!

+0

Vouliez-vous dire * n * -dimensionnelle espace? –

+0

Je continuerais à regarder http://docs.scipy.org/doc/scipy/reference/ndimage.html#module-scipy.ndimage.filters, il y a des filtres de lissage pour les opérations n-d. – jhamman

+0

@WarrenWeckesser: oui – Mannaggia

Répondre

1

Vous pouvez utiliser scipy.spatial.KDTree pour trouver des points dans un certain rayon puis trouver la valeur médiane de Y.

Ou peut-être utiliser une méthode de régression dans sklearn, comme Support Vector Regression