আমার কাছে দুটি ভেরিয়েবলের শোরগোলের ডেটা রয়েছে।
x1 <- rep(seq(0,1, 0.1), each = 3000)
set.seed(123)
y1 <- rep (c(0.2, 0.8, 0.3, 0.9, 0.65, 0.35,0.7,0.1,0.25, 0.3, 0.95), each = 3000)
set.seed(1234)
e1 = rnorm(length(x1), 0.07,0.07)
set.seed(1223)
e2 = rnorm(length(x1), 0.07,0.07)
set.seed(1334)
yn <- rnorm(20000, 0.5,0.9)
set.seed(2344)
xn <- rnorm(20000, 0.5,0.9)
y <- c(y1 + e1,yn)
x <- c(x1 + e2, xn)
plot(x,y, xlim=c(0,1.2), ylim = c(0,1.2), pch = ".", col = "gray40")
আমি চাক্ষুষরূপে দেখতে পাচ্ছি সম্ভাব্য 10 টি ক্লাস্টার নিবিড় দৃষ্টিতে রয়েছে।
তবে পুরো তথ্যটিতে অনেকগুলি পয়েন্ট ছড়িয়ে পড়েছে:
plot(x,y, pch = ".", col = "gray40")
আমি 10 টি ক্লাস্টার তৈরি করতে চাই। আমি কে-মানে ক্লাস্টার বিশ্লেষণ চেষ্টা করেছি।
xm1 <- cbind(x,y)
cl1 <- kmeans(xm1, 10)
colrs <- c("red", "green", "blue1", "pink", "green4","tan",
"gray40", "yellow", "black", "purple")
plot(xm1, col = colrs[cl1$cluster], pch = ".", xlim=c(0,1.2), ylim = c(0,1.2))
plot(xm1, col = colrs[cl1$cluster], pch = ".")
যে কোনও উপায়ে আছে (কর্নেল কে-মানে, নিকটতম প্রতিবেশী) যা এই ধরণের ডেটাতে আরও ন্যায়বিচার করতে পারে। যদি তা হয় তবে আমি কীভাবে এটি করতে পারি?