यहाँ 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)