การจัดกลุ่มข้อมูลที่มีเสียงดังหรือมีค่าผิดปกติ


9

ฉันมีข้อมูลที่มีเสียงดังของตัวแปรสองตัวเช่นนี้

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 กลุ่ม ฉันลองวิเคราะห์กลุ่ม K-mean

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 = ".")

ป้อนคำอธิบายรูปภาพที่นี่

มีอยู่แล้ว (อาจเป็นเคอร์เนล k- หมายถึงเพื่อนบ้านที่ใกล้ที่สุด) ที่สามารถทำความยุติธรรมมากขึ้นกับข้อมูลประเภทนี้ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร


1
มีอะไรผิดปกติกับสิ่งที่คุณมีจนถึงตอนนี้? ทำไมสิ่งที่คุณมี (การวิเคราะห์กลุ่ม k-mean ) ไม่ยอมรับ?
Steve S

ลองดู dbscan หรืออัลกอริธึม optics (ดูen.wikibooks.org/wata/Data_Mining_Algorithms_In_R/Clustering/
......

คำตอบ:


7

เนื่องจากข้อมูลของคุณประกอบด้วย Gaussian Mixtures ลองใช้Gaussian Mixture Modeling (aka: EM clustering) สิ่งนี้จะให้ผลลัพธ์ที่เหนือกว่า k-mean กับข้อมูลประเภทนี้

หาก "เสียง" ของคุณกระจายแบบสม่ำเสมอคุณสามารถเพิ่มการกระจายแบบสม่ำเสมอให้กับแบบจำลองการผสมของคุณ

หากข้อมูลของคุณสะอาดน้อยลงให้ลองใช้ DBSCAN, MeanShift, OPTICS, HDBSCAN *, ... - คลัสเตอร์ที่มีความหนาแน่นสูงน่าจะเหมาะสมสำหรับข้อมูลนี้ DBSCAN สามารถทนต่อเสียงรบกวนได้เป็นอย่างดี ("N" สำหรับเสียงรบกวน)


4

ผมแนะนำให้คุณดูที่นี้บทความ ผู้เขียนเสนอวิธีการที่แข็งแกร่งซึ่งค่าผิดปกติจะถูกลบและส่วนที่เหลือของข้อมูลจะถูกทำคลัสเตอร์ นั่นคือเหตุผลที่พวกเขาเรียกวิธีการ "ตัด" นอกจากนี้ยังมีแพคเกจ R tclustแต่ตามนี้มันถูกลบออกจาก CRAN อย่างไรก็ตามบทความมีมูลค่าการอ่าน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.