İşte mcluster kullanarak karışım modeli kullanmak için komut dosyası.
X <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,65, 3), rnorm(200,80,5))
Y <- c(rnorm(1000, 30, 2))
plot(X,Y, ylim = c(10, 60), pch = 19, col = "gray40")
require(mclust)
xyMclust <- Mclust(data.frame (X,Y))
plot(xyMclust)
5'ten az kümenin olduğu bir durumda:
X1 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,80,5))
Y1 <- c(rnorm(800, 30, 2))
xyMclust <- Mclust(data.frame (X1,Y1))
plot(xyMclust)
xyMclust4 <- Mclust(data.frame (X1,Y1), G=3)
plot(xyMclust4)
Bu durumda 3 küme takıyoruz. 5 küme takarsak ne olur?
xyMclust4 <- Mclust(data.frame (X1,Y1), G=5)
plot(xyMclust4)
5 küme yapmaya zorlayabilir.
Ayrıca rastgele bir ses getirelim:
X2 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,80,5), runif(50,1,100 ))
Y2 <- c(rnorm(850, 30, 2))
xyMclust1 <- Mclust(data.frame (X2,Y2))
plot(xyMclust1)
mclust
gürültü ile model tabanlı kümelemeye , yani herhangi bir kümeye ait olmayan gözlemlere izin verir . mclust
verilere uyumu düzenli hale getirmek için bir önceki dağılım belirtmeye izin verir. priorControl
Önceki ve parametrelerini belirtmek için mclust'ta bir işlev sağlanır. Varsayılanları ile çağrıldığında, defaultPrior
alternatif öncelikleri belirtmek için şablon olarak işlev görebilen başka bir işlevi çağırır . Modellemeye gürültüyü dahil etmek için, Mclust
veya içindeki başlatma argümanının gürültü bileşeni aracılığıyla gürültü gözlemlerinin ilk tahmininin sağlanması gerekir mclustBIC
.
Diğer alternatif, her bileşen için ortalama ve sigma belirtmenize izin veren mixtools
paketi kullanmak olacaktır .
X2 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3),
rnorm(200,80,5), rpois(50,30))
Y2 <- c(rnorm(800, 30, 2), rpois(50,30))
df <- cbind (X2, Y2)
require(mixtools)
out <- mvnormalmixEM(df, lambda = NULL, mu = NULL, sigma = NULL,
k = 5,arbmean = TRUE, arbvar = TRUE, epsilon = 1e-08, maxit = 10000, verb = FALSE)
plot(out, density = TRUE, alpha = c(0.01, 0.05, 0.10, 0.12, 0.15), marginal = TRUE)