क्लस्टरिंग एल्गोरिदम जो विरल डेटा मैट्रिक पर काम करते हैं [बंद]


18

मैं क्लस्टरिंग एल्गोरिदम की एक सूची संकलित करने की कोशिश कर रहा हूं जो हैं:

  1. आर में लागू किया गया
  2. विरल पर काम करते हैं डेटा मैट्रिसेस (नहीं ( डिस ) समानता समानता) पर काम करते हैं, जैसे कि स्पार्समेट्रिक्स फ़ंक्शन द्वारा बनाए गए ।

सीवी पर कई अन्य प्रश्न हैं जो इस अवधारणा पर चर्चा करते हैं, लेकिन उनमें से कोई भी आर संकुल से लिंक नहीं है जो सीधे तौर पर विरल मैट्रो पर काम कर सकते हैं:

  1. क्लस्टरिंग बड़े और विरल डेटासेट
  2. उच्च आयामी विरल बाइनरी डेटा क्लस्टरिंग
  3. विरल और उच्च-आयामी क्लस्टरिंग कार्यान्वयन की तलाश में
  4. अंतरिक्ष-कुशल क्लस्टरिंग

अब तक, मुझे 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

अन्य क्या कार्य हैं?


क्या आप का अर्थ है "बहुत सारे शून्य" या "बहुत सारे लापता मूल्यों" के रूप में?
केबिले मोनिका

यह सवाल स्टैटिस्टिक्स.स्टैकएक्सचेंज . com / help / dont-ask पर कई मानदंडों के अनुसार ऑफ-टॉपिक प्रतीत होता है : हर उत्तर समान रूप से मान्य होगा, आप प्रदान किए गए लोगों के अलावा अधिक उत्तर की उम्मीद करते हैं, और होने के लिए कोई वास्तविक समस्या नहीं है हल किया।
whuber

मुझे एहसास हुआ कि यह बंद हो गया है, लेकिन मैं इस पर आपके सभी सवालों पर ट्रिप
चिह्नित

1
@MarkeD बहुत बहुत धन्यवाद! यह वास्तव में बहुत बुरा सॉफ्टवेयर सिफारिशें हैं ऑफ-टॉपिक यहां, जैसा कि मैंने उनके लिए पूछने के लिए कहीं और ऑनलाइन पाया है।
ज़च

3
एक बार फिर बहुत उपयोगी सवाल बंद हो गया है :( अगर आपको जवाब नहीं पता है तो बस वोट न दें!
मॉन्स्टरमोरप

जवाबों:


1

मैं आर का उपयोग नहीं करता हूं। यह अक्सर बहुत धीमी गति से होता है और इसके बगल में कोई अनुक्रमण समर्थन नहीं होता है। लेकिन सॉफ्टवेयर सिफारिशों को वैसे भी ऑफ टॉपिक माना जाता है।

ध्यान दें कि बहुत सारे एल्गोरिदम परवाह नहीं करते हैं कि आप अपने डेटा को कैसे स्टोर करते हैं। यदि आप एक विरल मैट्रिक्स पसंद करते हैं, तो यह आपकी पसंद होना चाहिए, न कि एल्गोरिदम की पसंद।

वे लोग जो बहुत अधिक आर का उपयोग करते हैं, मैट्रिक्स ऑपरेशन में सोच में फंस जाते हैं (क्योंकि आर में तेज कोड लिखने का एकमात्र तरीका है)। लेकिन यह सोचने का एक सीमित तरीका है। उदाहरण के लिए k- साधन: इसकी परवाह नहीं है। विशेष रूप से, यह जोड़ीदार दूरी का उपयोग बिल्कुल नहीं करता है। इसे केवल विचरण योगदान की गणना करने का एक तरीका चाहिए; जो वर्ग के यूक्लिडियन दूरी की गणना करने के बराबर है।

या DBSCAN। यह सब की जरूरत है एक "पड़ोसी" विधेय है। यह मनमाने रेखांकन के साथ काम कर सकता है; यह सिर्फ इतना है कि यूक्लिडियन दूरी और एप्सिलॉन थ्रेशोल्ड पड़ोस के ग्राफ का उपयोग करने का सबसे आम तरीका है।

पुनश्च आपका प्रश्न बहुत सटीक नहीं है। क्या आप विरल डेटा मैट्रिक्स या विरल समानता मैट्रिक्स का उल्लेख करते हैं ?


1
विरल डेटा मैट्रिक्स
Zach

अधिकांश एल्गोरिदम विरल डेटा मैट्रिक्स पर काम कर सकते हैं। जैसे, AGESES, PAM, DBSCAN, OPTICS, CLARA, ...
Anony-Mousse -Reinstate Monica

सुनिश्चित नहीं हैं कि आपने उत्तर क्यों दिया, यदि आप R को भी नहीं जानते हैं
user3932000

मुझे पता है कि आर। शायद औसत आर उपयोगकर्ता की तुलना में बेहतर है। मैं आर में गैर-मानक मूल्यांकन जानता हूं और मुझे पता है कि अधिकांश मॉड्यूल सी में लिखे गए हैं, इसलिए जब आप एक स्पार्स मैट्रिक्स पास करते हैं, तो इसे वास्तविक कोड में पास करने से पहले इसे पहली बार एक अर्थ मैट्रिक्स में कॉपी किया जाता है। और हर पैकेज ऐसा करने के एक अलग तरीके का उपयोग करता है ... जो कुशल नहीं है। यदि आपको दक्षता या अच्छे एकीकरण या पीछे की संगतता या समन्वित विकास की आवश्यकता नहीं है, तो आप आर का चयन नहीं करते हैं।
ऐनी-मूस -Reateate मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.