Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce



#AGAURAGEO

1ère Biennale de l'Information Géographique
Lyon - 17 décembre 2019

http://agaurageo.fr/

#1 Mon 29 April 2019 15:23

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Méthode de classification Jenks dans postgres

Bonjour,

J'aimerais savoir si vous connaissez un moyen de réaliser une classification d'après la méthode statistique Jenks ou dite des Seuils naturels dans postgresql.

Merci d'avance pour vos retours.

Hors ligne

 

#2 Mon 29 April 2019 16:55

ppluvinet
Membre
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 551

Re: Méthode de classification Jenks dans postgres

Bonjour,
Il vous faudra je pense regarder à écrire des fonctions de Kmeans avec R ou python. A moins qu'il existe désormais une extension spécifique?
J'avais, il y a au moins 10 ans, implémenté des fonctions de Médiane, et quantiles avec PL/R. Toutefois, je ne pense plus être la bonne ressource !!!
Bon courage,


Pascal PLUVINET

Hors ligne

 

#3 Mon 29 April 2019 17:15

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 974

Re: Méthode de classification Jenks dans postgres

son calcul étant itératif, çà n'est pas faisable en SQL pur,
sauf peut être en utilisant une cte recursive, et encore,
pas sur que cela change quelque chose ou alors, si c'est
possible, je doute que çà soit très efficace.

Donc comme Pascal, plutôt voir du coté pl/R, créer une fonction
qui prends un argument le nom d'une table et renvoie les données
classées. Il y a sans doute déjà des implémentations en R de la classif Jenks.

Hors ligne

 

#4 Mon 29 April 2019 19:12

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 974

Re: Méthode de classification Jenks dans postgres

En fait, on peut peut être ruser :

si j'ai bien compris la classif de jenks est une classif k-mean
qui ne prends en compte qu'une dimension.

Donc, si vous avez postgis >= 2.3 d'installé, vous pouvez tricher :

Code:

SELECT 
    st_clusterkmeans(st_makepoint(_valeur_a_classer_, 0), 
                    _nombre_de_classe_) 
           OVER () 
           AS classe,
    _valeur_a_classer_
FROM 
     ma_table

Dernière modification par tumasgiu (Tue 30 April 2019 22:09)

Hors ligne

 

#5 Thu 09 May 2019 13:17

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Re: Méthode de classification Jenks dans postgres

Merci pour vos réponses!
Je vais essayer la méthode des k-means.

Cordialement.

Hors ligne

 

#6 Thu 09 May 2019 13:48

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Re: Méthode de classification Jenks dans postgres

Merci pour vos réponses!
Je vais essayer la méthode des k-means.

Cordialement.

Hors ligne

 

#7 Thu 09 May 2019 13:54

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Re: Méthode de classification Jenks dans postgres

Bonjour,

J'ai fait un test sur mes données mais la fonction ne me ressort que 7 classes, alors qu'il devrait m'en ressortir 10. Est ce parce que je n'ai pas assez d'individus homogènes dans ma distribution pour former des palliers marquants entre les classes 6 et 9?:


Code:

WITH nb AS
(SELECT 
    st_clusterkmeans(st_makepoint(surf_total, 0), 
                    10) 
           OVER (ORDER BY surf_total DESC)  
           AS classe,
    surf_total
FROM 
     mcd.tm2_espace_activite
     ORDER BY classe)
     select count(classe)as nb_element, classe
     from nb
     group by classe
     order by classe

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#8 Thu 09 May 2019 13:54

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Re: Méthode de classification Jenks dans postgres

Bonjour,

J'ai fait un test sur mes données mais la fonction ne me ressort que 7 classes, alors qu'il devrait m'en ressortir 10. Est ce parce que je n'ai pas assez d'individus homogènes dans ma distribution pour former des palliers marquants entre les classes 6 et 9?:


Code:

WITH nb AS
(SELECT 
    st_clusterkmeans(st_makepoint(surf_total, 0), 
                    10) 
           OVER (ORDER BY surf_total DESC)  
           AS classe,
    surf_total
FROM 
     mcd.tm2_espace_activite
     ORDER BY classe)
     select count(classe)as nb_element, classe
     from nb
     group by classe
     order by classe

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#9 Thu 09 May 2019 13:54

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 115

Re: Méthode de classification Jenks dans postgres

Bonjour,

J'ai fait un test sur mes données mais la fonction ne me ressort que 7 classes, alors qu'il devrait m'en ressortir 10. Est ce parce que je n'ai pas assez d'individus homogènes dans ma distribution pour former des palliers marquants entre les classes 6 et 9?:


Code:

WITH nb AS
(SELECT 
    st_clusterkmeans(st_makepoint(surf_total, 0), 
                    10) 
           OVER (ORDER BY surf_total DESC)  
           AS classe,
    surf_total
FROM 
     mcd.tm2_espace_activite
     ORDER BY classe)
     select count(classe)as nb_element, classe
     from nb
     group by classe
     order by classe

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#10 Thu 16 May 2019 11:56

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 974

Re: Méthode de classification Jenks dans postgres

Salut,

apparemment c'est un bug qui a été corrigé dans les versions 2.3.6 et  2.4.3

Dernière modification par tumasgiu (Thu 16 May 2019 11:58)

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |