Gürültülü veri veya aykırı değerlerle kümeleme


9

Böyle iki değişkenli gürültülü bir veri var.

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

Daha yakından bakıldığında potansiyel 10 küme olduğunu görsel olarak görebiliyorum.

resim açıklamasını buraya girin

Ancak tüm verilerin çok fazla puanı vardır:

plot(x,y,   pch = ".", col = "gray40") 

resim açıklamasını buraya girin

10 küme yapmak istiyorum. K-ortalamaları küme analizini denedim.

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))

resim açıklamasını buraya girin

plot(xm1, col = colrs[cl1$cluster], pch = ".")

resim açıklamasını buraya girin

Bu tür veriler için daha fazla adalet yapabilen yine de (çekirdek k-araçları, en yakın komşular olabilir) var mı? Öyleyse bunu nasıl yapabilirim?


1
Şimdiye kadar sahip olduğunuz şeyin nesi var? Sahip olduğunuz neden ( k-ortalama küme analizi ) kabul edilemez?
Steve S

Bir dbscan için göz veya optik algoritmaları (bkz mı en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/... )
Giorgio Spedicato

Yanıtlar:


7

Verileriniz Gauss Karışımlarından oluşuyor gibi göründüğü için Gauss Karışım Modellemesi'ni (aka: EM kümeleme) deneyin . Bu, bu tür verilerde k-araçlarından çok daha üstün sonuçlar vermelidir.

"Gürültünüz" üniform dağılmışsa, karışım modelinize üniform dağılım da ekleyebilirsiniz.

Verileriniz çok daha az temizse, DBSCAN, MeanShift, OPTICS, HDBSCAN *, ... kullanmayı düşünün - yoğunluk tabanlı küme bu veriler için uygun gibi görünüyor. DBSCAN ayrıca gürültüye karşı çok toleranslıdır ("N" gürültü içindir).


4

Bu makaleye bakmanızı tavsiye ederim . Yazarlar, aykırı değerlerin çıkarıldığı ve geri kalan verilerin kümelendiği güçlü bir yöntem önermektedir. Bu yüzden yöntemi "kırpma" olarak adlandırdılar. R paketi oldu tclust ama göre bu , bu CRAN çıkarıldı. Her neyse, makale okumaya değer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.