ক্লাস্টারিংয়ের জন্য মিশ্রণ মডেলটি কীভাবে ফিট করা যায়


15

আমার দুটি ভেরিয়েবল রয়েছে - এক্স এবং ওয়াই এবং আমার ক্লাস্টার সর্বাধিক (এবং অনুকূল) করা প্রয়োজন = 5 Let's আসুন ভেরিয়েবলগুলির আদর্শ প্লটটি নিম্নলিখিতগুলির মতো:

এখানে চিত্র বর্ণনা লিখুন

আমি এটির 5 টি ক্লাস্টার তৈরি করতে চাই। এটার মতো কিছু:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমি এই 5 টি ক্লাস্টার সঙ্গে মিশ্রণ মডেল মনে করি। প্রতিটি ক্লাস্টারের চারপাশে সেন্টার পয়েন্ট এবং একটি আস্থার বৃত্ত থাকে।

ক্লাস্টারগুলি সর্বদা এটির মতো সুন্দর হয় না, এগুলি নিম্নলিখিতগুলির মতো দেখায়, যেখানে দু'টি ক্লাস্টার একসাথে কাছাকাছি থাকে বা এক বা দুটি ক্লাস্টার পুরোপুরি অনুপস্থিত থাকে।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

এই পরিস্থিতিতে কার্যকরভাবে কীভাবে মিশ্রণের মডেল ফিট করে এবং শ্রেণিবদ্ধকরণ (ক্লাস্টারিং) করা যায়?

উদাহরণ:

set.seed(1234)
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")

উত্তর:


13

ম্যাক্লাস্টার ব্যবহার করে মিশ্রণ মডেল ব্যবহারের জন্য এখানে স্ক্রিপ্ট রয়েছে।

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পূর্ববর্তী এবং এর পরামিতিগুলি নির্দিষ্ট করার জন্য একটি ফাংশন এমক্লাস্টে সরবরাহ করা হয়। যখন এটির ডিফল্ট হিসাবে ডাকা হয়, তখন এটি অন্য একটি ফাংশন ডেকে আনে 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)

এখানে চিত্র বর্ণনা লিখুন


2
+1 এই উত্তরটি খুব কার্যকরী, ব্যবহারযোগ্য এবং সংযোগযুক্ত এবং এর পিছনে গণিত না জেনেও কীভাবে এটির মতো কাজ করা প্রায় সহজ কাজগুলির একটি নিখুঁত উদাহরণ ...
পল

3

একটি স্ট্যান্ডার্ড পদ্ধতির গাউসিয়ান মিকচার মডেল যা ইএম অ্যালগরিদমের মাধ্যমে প্রশিক্ষিত হয়। তবে যেহেতু আপনি এটি লক্ষ্য করেছেন যে গুচ্ছের সংখ্যা পৃথক হতে পারে তাই আপনি ডাইরিচলেট জিএমএম-এর মতো একটি ননপ্যারমেট্রিক মডেলও বিবেচনা করতে পারেন যা বিজ্ঞান-শিখায় প্রয়োগ করা হয়।

আর-তে, এই দুটি প্যাকেজগুলি আপনাকে যা প্রয়োজন তা দেয় বলে মনে হয়,

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.