Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
fonction kmeans URGENT
3 participants
Page 1 sur 1
fonction kmeans URGENT
Bonjour !
Je tente de segmenter mes données en 3 groupes en fonction d'une variable en particulier, avec la fonction "kmeans".
Mes groupes se séparent par la variable "pg" (glandulosité du fruit, qui est binaire. présence = 1 absence = 0) et en fonction d'une variable continue [,11].
Seulement je n'arrive pas à lancer la commande ... ça me donne :
kmeans(data[data$pg==0,11])
Error in kmeans(data[data$pg == 0, 11]) :
'centers' doit être une matrice numérique
Je ne comprends pas pk "centersé n'est pas numérique. Est ce que quelqu'un peut m'aider ??
Merci d'avance
Je tente de segmenter mes données en 3 groupes en fonction d'une variable en particulier, avec la fonction "kmeans".
Mes groupes se séparent par la variable "pg" (glandulosité du fruit, qui est binaire. présence = 1 absence = 0) et en fonction d'une variable continue [,11].
Seulement je n'arrive pas à lancer la commande ... ça me donne :
kmeans(data[data$pg==0,11])
Error in kmeans(data[data$pg == 0, 11]) :
'centers' doit être une matrice numérique
Je ne comprends pas pk "centersé n'est pas numérique. Est ce que quelqu'un peut m'aider ??
Merci d'avance
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Re: fonction kmeans URGENT
Bonsoir,
Vous n'avez pas dit combien de groupes vous vouliez (3 d'après ce que vous dites au début). C'est à ça que sert centers. Si j'ai bien compris ce que vous cherchiez à faire, il faut donc lancer la commande :
J'espère que ça résoudra votre problème.
Bonne soirée, Victor
Vous n'avez pas dit combien de groupes vous vouliez (3 d'après ce que vous dites au début). C'est à ça que sert centers. Si j'ai bien compris ce que vous cherchiez à faire, il faut donc lancer la commande :
- Code:
kmeans(data[data$pg==0,11], centers=3)
J'espère que ça résoudra votre problème.
Bonne soirée, Victor
victornitho- Nombre de messages : 11
Date d'inscription : 03/03/2014
Re: fonction kmeans URGENT
oui merci ça marche !
est ce que je peux lancer une représentation graphique ensuite à partir des résultats obtenus avec kmeans?
est ce que je peux lancer une représentation graphique ensuite à partir des résultats obtenus avec kmeans?
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Re: fonction kmeans URGENT
D'après la solution (le code), le problème est de déterminer trois sous-groupes dans le groupe des fruits dont la variable pg vaut 0, et ces trois sous-groupes sont définis à partir d'une seule variable, la variable '11'.
1) est-ce vraiment la meilleure solution que d'utiliser la méthode des kmeans pour partitionner une variable en 3 classes ?
2) quid des fruits dont pg vaut 1 ? En d'autres termes, est-ce que la 'solution' répond vraiment au problème initial ?
1) est-ce vraiment la meilleure solution que d'utiliser la méthode des kmeans pour partitionner une variable en 3 classes ?
2) quid des fruits dont pg vaut 1 ? En d'autres termes, est-ce que la 'solution' répond vraiment au problème initial ?
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Re: fonction kmeans URGENT
Oui vous pouvez récupérer toutes les infos stockées par kmeans (les centres, les moyennes de chaque groupe, le nombre de valeurs de chaque groupe...) ce qui vous permettra de faire tous les graphiques que vous voulez.
Pour ça il suffit de stocker le résultats de kmeans dans un objet :
Ensuite vous pouvez obtenir toutes les infos en tapant "objet$" dans la console, R vous propose alors plein de possibilité dont $cluster, $centers, $size...
Peut-être que si vous ne travaillez sur Rstudio ça ne fonctionne pas, n'hésitez pas à me dire dans ce cas là, je ferai plus explicite
Victor
Pour ça il suffit de stocker le résultats de kmeans dans un objet :
- Code:
objet<-kmeans(data[data$pg==0,11], centers=3)
Ensuite vous pouvez obtenir toutes les infos en tapant "objet$" dans la console, R vous propose alors plein de possibilité dont $cluster, $centers, $size...
Peut-être que si vous ne travaillez sur Rstudio ça ne fonctionne pas, n'hésitez pas à me dire dans ce cas là, je ferai plus explicite
Victor
victornitho- Nombre de messages : 11
Date d'inscription : 03/03/2014
Re: fonction kmeans URGENT
Florent, en fait je voudrais séparer mes individus (rosiers) en 3 groupes distinctes en fonction du rapport longueur/largeur de la feuille, qui se différencient déjà par une variable = glandulosité du fruit. Avec absence de glandes = 0 et présence =1. Etant donné que je ne maîtrise pas bien R, j'ai essayé la fonction kmeans, sans savoir si c'était vraiment la meilleure solution ... cependant si vous avez d'autres idées je suis preneuse !
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Re: fonction kmeans URGENT
Merci Victor pour votre réponse, je vais essayer !
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Re: fonction kmeans URGENT
Le problème n'est pas un problème de R mais de d'abord de modèle.
D'après ce que je comprends de ta réponse, la glandulosité du fruit sépare déjà les rosiers en deux groupes distincts. Le problème est donc de savoir où se situent les deux autres groupes. Mais j'ai peut-être mal compris et ce que tu cherches peut être par exemple un certain intervalle du rapport qui constitue un groupe indépendamment de la glandulosité et deux groupes en dépendant ou autre chose. En fait, il me semble que tu cherches a trouver 3 groupes définis par des combinaisons à déterminer des deux variables. Avec une variable qualitative, une méthode de type arbre de décision pourrait être mieux adaptée. D'autre part, tu choisis arbitrairement (?) une variable secondaire, ne serait-il pas plus judicieux d'essayer de construire les groupes à partir de l'ensemble de toutes les variables. C'est ainsi qu'on procède généralement.
D'après ce que je comprends de ta réponse, la glandulosité du fruit sépare déjà les rosiers en deux groupes distincts. Le problème est donc de savoir où se situent les deux autres groupes. Mais j'ai peut-être mal compris et ce que tu cherches peut être par exemple un certain intervalle du rapport qui constitue un groupe indépendamment de la glandulosité et deux groupes en dépendant ou autre chose. En fait, il me semble que tu cherches a trouver 3 groupes définis par des combinaisons à déterminer des deux variables. Avec une variable qualitative, une méthode de type arbre de décision pourrait être mieux adaptée. D'autre part, tu choisis arbitrairement (?) une variable secondaire, ne serait-il pas plus judicieux d'essayer de construire les groupes à partir de l'ensemble de toutes les variables. C'est ainsi qu'on procède généralement.
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Re: fonction kmeans URGENT
Etant donné que la glandulosité est binaire, cette information me permet de différencier seulement 2 groupes .Je cherche donc une 3ème variable qui me permettrait de mettre en évidence un 3eme groupe (hybrides). J'ai essayé avec la variable "rapport longueur/largeur de la feuille" mais sans grand succès ... en fait c'est la première fois que j'utilise R et que je fais ce genre d'étude donc ce n'est pas du tout intuitif pour moi. Par rapport à ce que vous dites à la fin, j'ai déjà fait un arbre qui m'a permit de mettre en évidence 2 groupes avec les variables morpho discrètes. Mais pour visualiser l'hybridation c'est là que ça se complique
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Re: fonction kmeans URGENT
Une mauvaise stratégie est d'essayer variable par variable. Il faut utiliser toutes les variables à la fois et tenter différentes approches.
Par arbre de décision : il faut soit le couper à l'endroit où il conduit à trois classes mais ce n'est pas une bonne solution. Une meilleure solution est d'essayer de couper l'arbre en utilisant les méthodes de pruning classiques. Sous R, il suffit de faire une recherche sur Internet avec les mots-clés 'pruning decision tree CRAN R' pour trouver les différentes méthodes.
Si tu veux continuer à utiliser les k-means, il faut recoder les différentes variables qualitatives de type étiquette sous forme de tableau disjonctif complet et les variables qualitatives ordinales peuvent être recodées par leur rang (fonction rank). De plus, la méthode des k_means necessitent généralement qu'on cherche plusieurs solutions en changeant les centres des clusters (et en utilisant soit les centroïdes soit les médoïdes) et qu'on choisisse la meilleure partition à partir d'un critère, par exemple rapport des variances intra-classes sur variance inter-classe minimale.
Par arbre de décision : il faut soit le couper à l'endroit où il conduit à trois classes mais ce n'est pas une bonne solution. Une meilleure solution est d'essayer de couper l'arbre en utilisant les méthodes de pruning classiques. Sous R, il suffit de faire une recherche sur Internet avec les mots-clés 'pruning decision tree CRAN R' pour trouver les différentes méthodes.
Si tu veux continuer à utiliser les k-means, il faut recoder les différentes variables qualitatives de type étiquette sous forme de tableau disjonctif complet et les variables qualitatives ordinales peuvent être recodées par leur rang (fonction rank). De plus, la méthode des k_means necessitent généralement qu'on cherche plusieurs solutions en changeant les centres des clusters (et en utilisant soit les centroïdes soit les médoïdes) et qu'on choisisse la meilleure partition à partir d'un critère, par exemple rapport des variances intra-classes sur variance inter-classe minimale.
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Re: fonction kmeans URGENT
Merci beaucoup pour votre réponse je vais faire des recherches ! Même si ce language est très complexe pour moi je pense que je vais m'en sortir
Héloïse Verdier- Nombre de messages : 6
Date d'inscription : 07/12/2016
Sujets similaires
» kmeans choix des couleurs des groupes dans plot.PCA
» Urgent
» Urgent
» urgent +++
» Importer données excel R
» Urgent
» Urgent
» urgent +++
» Importer données excel R
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum