Bir veri çerçevesi üzerinde df1 k-aracı kümeleme çalıştırıyorum ve her gözlem için en yakın küme merkezini hesaplamak için basit bir yaklaşım arıyorum. yeni veri çerçevesi df2 (aynı değişken isimleriyle). Eğitim seti olarak df1 ve test setinde df2'yi düşünün; Eğitim setini kümelemek ve her test noktasını doğru kümeye atamak istiyorum.K-araçları kümelemeden sonra yeni veriler için kümeler atamak için basit bir yaklaşım
Benapply
fonksiyonu ve bir kaç basit kullanıcı tanımlı fonksiyonları ile bunun nasıl biliyor
(benzer konuda önceki mesajlar genellikle önerdi şey): Ancak
df1 <- data.frame(x=runif(100), y=runif(100))
df2 <- data.frame(x=runif(100), y=runif(100))
km <- kmeans(df1, centers=3)
closest.cluster <- function(x) {
cluster.dist <- apply(km$centers, 1, function(y) sqrt(sum((x-y)^2)))
return(which.min(cluster.dist)[1])
}
clusters2 <- apply(df2, 1, closest.cluster)
, bu kümelenme hazırlık yapıyorum Öğrencilerin apply
işlevini bilmedikleri bir ders için örnek, bu yüzden df2'ye yerleşik bir işlevle küme atayabilseydim çok tercih ederim. En yakın kümeyi bulmak için uygun yerleşik işlevler var mı?
(http://manuals.bioinformatics.ucr.edu/home/R_BioCondManual# [burada R kodu ve açıklamaları ile farklı bir kümelenme yöntemleri denemek için bir kaynaktır] TOC-Kümeleme-Alıştırmalar) Ayrıca, belleğe dayanmayan ve bir K-anlamına gelen [biganalytics paketi] (http://cran.r-project.org/web/packages/biganalytics/biganalytics.pdf) bulunmaktadır. algoritma – marbel
Öğrencileri 'apply() '(tekrar tekrar kullanacakları şekilde) ile tanıştırmak ve özel günler için hatırlamak zorunda kalacakları farklı paketlere tanıtmaktan ziyade nispeten basit bir yöntem kullanmaktan daha mantıklı görünmektedir. (eğer bir daha kullanırlarsa). – naught101