Je me demande s'il existe un bon moyen de calculer le critère de clustering basé sur la formule BIC, pour une sortie k-means dans R? Je suis un peu confus quant à la façon de calculer ce BIC afin de pouvoir le comparer avec d'autres modèles de clustering. Actuellement, j'utilise l'implémentation du package de statistiques de k-means.
r
clustering
k-means
bic
UnivStudent
la source
la source
Réponses:
Pour calculer le BIC pour les résultats kmeans, j'ai testé les méthodes suivantes:
Le code r pour la formule ci-dessus est:
le problème est que lorsque j'utilise le code r ci-dessus, le BIC calculé était en augmentation monotone. Quelle est la raison?
[ref2] Ramsey, SA et al. (2008). "Découvrir un programme de transcription des macrophages en intégrant les preuves de la numérisation des motifs et de la dynamique d'expression." PLoS Comput Biol 4 (3): e1000021.
J'ai utilisé la nouvelle formule de /programming/15839774/how-to-calculate-bic-for-k-means-clustering-in-r
Cette méthode a donné la valeur BIC la plus faible au cluster numéro 155.
en utilisant la méthode fournie @ttnphns, le code R correspondant comme indiqué ci-dessous. Cependant, le problème est quelle est la différence entre Vc et V? Et comment calculer la multiplication par élément pour deux vecteurs de longueur différente?
la source
Vc
est une matrice P x K etV
était une colonne puis se propageait K fois dans la même matrice de taille. Donc (point 4 dans ma réponse), vous pouvez ajouterVc+V
. Ensuite, prenez le logarithme, divisez par 2 et calculez les sommes des colonnes. Le vecteur ligne résultant se multiplie (valeur par valeur, c'est-à-dire élément par élément) par ligneNc
.Je n'utilise pas R mais voici un calendrier qui, je l'espère, vous aidera à calculer la valeur des critères de clustering BIC ou AIC pour une solution de clustering donnée.
Cette approche suit les algorithmes SPSS Une analyse de cluster en deux étapes (voir les formules, à partir du chapitre "Nombre de clusters", puis passer à "Distance de vraisemblance log" où ksi, la log-vraisemblance, est définie). Le BIC (ou AIC) est calculé sur la base de la distance log-vraisemblance. Je montre ci-dessous le calcul pour les données quantitatives uniquement (la formule donnée dans le document SPSS est plus générale et incorpore également des données catégoriques; je ne parle que de sa "partie" de données quantitatives):
Les critères de classification AIC et BIC ne sont pas utilisés uniquement avec la classification K-means. Ils peuvent être utiles pour toute méthode de clustering qui traite la densité intra-cluster comme une variance intra-cluster. Parce que AIC et BIC doivent pénaliser les "paramètres excessifs", ils ont tendance à préférer sans ambiguïté les solutions avec moins de clusters. "Moins de clusters plus dissociés les uns des autres" pourrait être leur devise.
Il peut exister différentes versions des critères de clustering BIC / AIC. Celui que j'ai montré ici utilise
Vc
les variances intra-grappes comme terme principal de la log-vraisemblance. Une autre version, peut-être mieux adaptée au clustering k-means, pourrait baser la vraisemblance logarithmique sur les sommes des carrés intra-cluster .La version pdf du même document SPSS auquel j'ai fait référence.
Et voici enfin les formules elles-mêmes, correspondant au pseudocode ci-dessus et au document; il est tiré de la description de la fonction (macro) que j'ai écrite pour les utilisateurs SPSS. Si vous avez des suggestions pour améliorer les formules, veuillez poster un commentaire ou une réponse.
la source
Vc
Vc+V
Vc
Vc=0