다음은 mcluster를 사용하여 혼합 모델을 사용하는 스크립트입니다.
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 개 미만인 경우 :
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)
이 경우에는 3 개의 군집이 적합합니다. 5 개의 군집에 적합하면 어떻게됩니까?
xyMclust4 <- Mclust(data.frame (X1,Y1), G=5)
plot(xyMclust4)
5 개의 클러스터를 강제로 만들 수 있습니다.
또한 임의의 노이즈를 소개하겠습니다 :
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
수 있습니다 모델 기반 클러스터링 노이즈, 어떤 클러스터에 속하지 않는, 즉 외곽 관찰. mclust
데이터에 적합하도록 정규 분포를 지정할 수 있습니다. priorControl
이전 및 해당 매개 변수를 지정하기위한 기능 이 mclust에 제공됩니다. 기본값으로 호출되면 defaultPrior
다른 우선 순위를 지정하기위한 템플리트 역할을 할 수있는 다른 함수를 호출합니다 . 모델링에 노이즈를 포함 시키려면 Mclust
또는 에서 초기화 인수의 노이즈 구성 요소를 통해 노이즈 관측치의 초기 추측을 제공해야합니다 mclustBIC
.
다른 대안은 각 구성 요소에 대한 평균 및 시그마를 지정할 수있는 mixtools
패키지 를 사용하는 것입니다.
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)