मैं क्लस्टरिंग एल्गोरिदम की एक सूची संकलित करने की कोशिश कर रहा हूं जो हैं:
- आर में लागू किया गया
- विरल पर काम करते हैं डेटा मैट्रिसेस (नहीं ( डिस ) समानता समानता) पर काम करते हैं, जैसे कि स्पार्समेट्रिक्स फ़ंक्शन द्वारा बनाए गए ।
सीवी पर कई अन्य प्रश्न हैं जो इस अवधारणा पर चर्चा करते हैं, लेकिन उनमें से कोई भी आर संकुल से लिंक नहीं है जो सीधे तौर पर विरल मैट्रो पर काम कर सकते हैं:
- क्लस्टरिंग बड़े और विरल डेटासेट
- उच्च आयामी विरल बाइनरी डेटा क्लस्टरिंग
- विरल और उच्च-आयामी क्लस्टरिंग कार्यान्वयन की तलाश में
- अंतरिक्ष-कुशल क्लस्टरिंग
अब तक, मुझे R में ठीक एक फंक्शन मिला है, जो मैट्रिस स्पार्स को क्लस्टर कर सकता है:
skmeans : गोलाकार kmeans
से skmeans पैकेज । कोसाइन दूरी का उपयोग करते हुए किमी । DgTMatrix ऑब्जेक्ट्स पर कार्य करता है। एक आनुवंशिक k- साधन एल्गोरिथ्म, pclust, CLUTO, gmeans और kmndirs के लिए एक इंटरफ़ेस प्रदान करता है।
उदाहरण:
library(Matrix)
set.seed(42)
nrow <- 1000
ncol <- 10000
i <- rep(1:nrow, sample(5:100, nrow, replace=TRUE))
nnz <- length(i)
M1 <- sparseMatrix(i = i,
j = sample(ncol, nnz, replace = TRUE),
x = sample(0:1 , nnz, replace = TRUE),
dims = c(nrow, ncol))
M1 <- M1[rowSums(M1) != 0, colSums(M1) != 0]
library(skmeans)
library(cluster)
clust_sk <- skmeans(M1, 10, method='pclust', control=list(verbose=TRUE))
summary(silhouette(clust_sk))
निम्नलिखित एल्गोरिदम को सम्मानजनक उल्लेख मिलता है: वे काफी क्लस्टरिंग एल्गोरिदम नहीं हैं, लेकिन विरल मैट्रिसेस पर काम करते हैं।
apriori : एसोसिएशन नियम खनन
से arules पैकेज । "लेन-देन" ऑब्जेक्ट्स पर संचालित होता है, जिसे ngCMatrix ऑब्जेक्ट्स से ज़ब्त किया जा सकता है। सिफारिशें करने के लिए इस्तेमाल किया जा सकता है।
उदाहरण:
library(arules)
M1_trans <- as(as(t(M1), 'ngCMatrix'), 'transactions')
rules <- apriori(M1_trans, parameter =
list(supp = 0.01, conf = 0.01, target = "rules"))
summary(rules)
irlba : विरल SVD
से irlba पैकेज । क्या एसवीडी विरल मैट्रिस पर होता है। पारंपरिक आर संकुल के साथ क्लस्टरिंग से पहले विरल मैट्रिस की आयामीता को कम करने के लिए इस्तेमाल किया जा सकता है।
उदाहरण:
library(irlba)
s <- irlba(M1, nu = 0, nv=10)
M1_reduced <- as.matrix(M1 %*% s$v)
clust_kmeans <- kmeans(M1, 10)
summary(silhouette(clust_kmeans$cluster, dist(M1_reduced)))
एफ़क्लस्टर : एफिनिटी प्रोपोगेशन क्लस्टरिंग
library(apcluster)
sim <- crossprod(M1)
sim <- sim / sqrt(sim)
clust_ap <- apcluster(sim) #Takes a while
अन्य क्या कार्य हैं?