Матрица несоответствия с использованием table в иерархической кластеризации и кластеризации с помощью k-средних
Здраствуйте! У меня проблемы с вычислением матрицы неcоответстий. Я создал три набора точек с многомерным нормальным распределением:
library('MASS')
library('ggplot2')
library('reshape2')
library("ClusterR")
library("cluster")
library("dplyr")
library ("factoextra")
library("dendextend")
library("circlize")
mu1<-c(1,1)
mu2<-c(1,-9)
mu3<-c(-7,-2)
sigma1<-matrix(c(1,1,1,2), nrow=2, ncol=2, byrow = TRUE)
sigma2<-matrix(c(1,-1,-1,2), nrow=2, ncol=2, byrow = TRUE)
sigma3<-matrix(c(2,0.5,0.5,0.3), nrow=2, ncol=2, byrow = TRUE)
simulation1<-mvrnorm(100,mu1,sigma1)
simulation2<-mvrnorm(100,mu2,sigma2)
simulation3<-mvrnorm(100,mu3,sigma3)
X<-rbind(simulation1,simulation2,simulation3)
colnames(X)<-c("x","y")
X<-data.frame(X)
Я также построил кластеры, используя кластеризацию k-средних и иерархическую кластеризацию с k начальными центрами (k = 3):
//k-means clustering
k<-3
B<-kmeans(X, centers = k, nstart = 10)
x_cluster = data.frame(X, group=factor(B$cluster))
ggplot(x_cluster, aes(x, y, color = group)) + geom_point()
//hierarchical clustering
single<-hclust(dist(X), method = "single")
clusters2<-cutree(single, k = 3)
fviz_cluster(list (data = X, cluster=clusters2))
Как я могу рассчитать матрицу несоответствий для полного набора данных (X), используя table в обоих этих случаях?
Ответы (1 шт):
Автор решения: black_paladin
→ Ссылка
А степени совпадения Вам не достаточно?
#errors, covar.of prognosis
rand.index(X$x,clusters2)
rand.index(B$cluster,clusters2)
si1<-cbind(simulation1, 1)
si2<-cbind(simulation1, 2)
si3<-cbind(simulation1, 3)
XX<-as.data.frame(rbind(si1,si2,si3))
rand.index(XX$V3,B$cluster)
С матрицей будут проблемы разной маркировки кластеров - обозначили "1" вместо "0" и уже несовпадение...