आर संकुलन के लिए सांख्यिकी संकुल का उपयोग आर में


10

मुझे क्लस्टर पैकेज के एक या दो पहलुओं को समझने में कठिनाई हो रही है। मैं क्विक-आर से बारीकी से उदाहरण का अनुसरण कर रहा हूं , लेकिन विश्लेषण के एक या दो पहलुओं को नहीं समझता। मैंने उस कोड को शामिल किया है जिसका मैं इस विशेष उदाहरण के लिए उपयोग कर रहा हूं।

## Libraries
library(stats)
library(fpc) 

## Data
mydata = structure(list(a = c(461.4210925, 1549.524107, 936.42856, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131.4349206, 0, 762.6110846, 
3837.850406), b = c(19578.64174, 2233.308842, 4714.514274, 0, 
2760.510002, 1225.392118, 3706.428246, 2693.353714, 2674.126613, 
592.7384164, 1820.976961, 1318.654162, 1075.854792, 1211.248996, 
1851.363623, 3245.540062, 1711.817955, 2127.285272, 2186.671242
), c = c(1101.899095, 3.166506463, 0, 0, 0, 1130.890295, 0, 654.5054857, 
100.9491289, 0, 0, 0, 0, 0, 789.091922, 0, 0, 0, 0), d = c(33184.53871, 
11777.47447, 15961.71874, 10951.32402, 12840.14983, 13305.26424, 
12193.16597, 14873.26461, 11129.10269, 11642.93146, 9684.238583, 
15946.48195, 11025.08607, 11686.32213, 10608.82649, 8635.844964, 
10837.96219, 10772.53223, 14844.76478), e = c(13252.50358, 2509.5037, 
1418.364947, 2217.952853, 166.92007, 3585.488983, 1776.410835, 
3445.14319, 1675.722506, 1902.396338, 945.5376228, 1205.456943, 
2048.880329, 2883.497101, 1253.020175, 1507.442736, 0, 1686.548559, 
5662.704559), f = c(44.24828759, 0, 485.9617601, 372.108855, 
0, 509.4916263, 0, 0, 0, 212.9541122, 80.62920455, 0, 0, 30.16525587, 
135.0501384, 68.38023073, 0, 21.9317122, 65.09052886), g = c(415.8909649, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637.2629479, 0, 0, 
0), h = c(583.2213618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0), i = c(68206.47387, 18072.97762, 23516.98828, 
13541.38572, 15767.5799, 19756.52726, 17676.00505, 21666.267, 
15579.90094, 14351.02033, 12531.38237, 18470.59306, 14149.82119, 
15811.23348, 14637.35235, 13588.64291, 12549.78014, 15370.90886, 
26597.08152)), .Names = c("a", "b", "c", "d", "e", "f", "g", 
"h", "i"), row.names = c(NA, -19L), class = "data.frame")

तब मैं चर का मानकीकरण करता हूं:

# standardize variables
mydata <- scale(mydata) 

## K-means Clustering 

# Determine number of clusters
wss <- (nrow(mydata)-1)*sum(apply(mydata,2,var))
for (i in 2:15) wss[i] <- sum(kmeans(mydata, centers=i)$withinss)
# Q1
plot(1:15, wss, type="b", xlab="Number of Clusters",  ylab="Within groups sum of squares") 

# K-Means Cluster Analysis
fit <- kmeans(mydata, 3) # number of values in cluster solution

# get cluster means 
aggregate(mydata,by=list(fit$cluster),FUN=mean)

# append cluster assignment
mydata <- data.frame(mydata, cluster = fit$cluster)

# Cluster Plot against 1st 2 principal components - vary parameters for most readable graph
clusplot(mydata, fit$cluster, color=TRUE, shade=TRUE, labels=0, lines=0) # Q2

# Centroid Plot against 1st 2 discriminant functions
plotcluster(mydata, fit$cluster)

मेरा सवाल यह है कि जो प्लॉट ( Q1मेरे कोड में चिह्नित ) समूहों की संख्या वास्तविक मूल्यों (क्लस्टर संख्या और चर नाम) से संबंधित कैसे हो सकती है?

अद्यतन: मैं अब समझता हूं कि clusplot()फ़ंक्शन एक बाइवेरिएट प्लॉट है, जिसमें पीसीए 1 और पीसीए 2 है। हालाँकि, मुझे PCA घटकों और क्लस्टर समूहों के बीच लिंक समझ में नहीं आता है। पीसीए मूल्यों और क्लस्टरिंग समूहों के बीच क्या संबंध है? मैंने किमी और पीसीए के बीच लिंक के बारे में कहीं और पढ़ा है, लेकिन मुझे अभी भी समझ में नहीं आया है कि उन्हें एक ही द्विभाजित ग्राफ पर कैसे प्रदर्शित किया जा सकता है।


माफी माँगता हूँ अगर मैंने पिछले कुछ दिनों में क्लस्टरिंग के बारे में बहुत सारे सवाल पूछे हैं। मैं जल्दी से इस क्षेत्र से अधिक परिचित बनने के लिए कोशिश कर रहा हूँ (यह भी मैं इतने पर इस प्रश्न को पोस्ट किया था, stackoverflow.com/questions/4997870/... लेकिन यह इसे यहाँ स्थानांतरित करने के लिए सुझाव दिया गया था)
celenius

यह ठीक है, यह TCS.SE (-;

# समूहों की संख्या निर्धारित करें क्या आप बता सकते हैं कि हम इस सूत्र (mydata, 2, var) का उपयोग क्यों कर रहे हैं और 2:15 क्यों?

जवाबों:


8

मैंने प्रश्न 1 को पूरी तरह से नहीं समझा है, लेकिन मैं उत्तर देने का प्रयास करूंगा। Q1 का प्लॉट दिखाता है कि चौकों की संख्या (wss) के भीतर क्लस्टर संख्या में परिवर्तन कैसे होता है। इस तरह के भूखंडों में आपको ग्राफ़ में किंक के लिए देखना होगा, 5 पर एक किंक इंगित करता है कि 5 समूहों का उपयोग करना एक अच्छा विचार है।

WSS का आपके चर के साथ निम्नलिखित अर्थों में संबंध है, WSS का सूत्र है

ΣजेΣएक्समैंसीजे||एक्समैं-μजे||2

जहां क्लस्टर के लिए मतलब है और है मई के अवलोकन। हम क्लस्टर j को । डब्ल्यूएसएस को कभी-कभी "प्रत्येक क्लस्टर के अंदर अंक समान कैसे होते हैं" के रूप में व्याख्या की जाती है। यह समानता चरों को संदर्भित करती है।μजेजेएक्समैंमैंसीजे

प्रश्न 2 का उत्तर यह है। आप वास्तव में जो देख रहे हैं clusplot()वह प्रिंसिपल प्लेन में आपकी टिप्पणियों की साजिश है। यह फ़ंक्शन क्या कर रहा है, आपकी प्रत्येक टिप्पणियों के लिए प्रमुख घटक स्कोर की गणना कर रहा है, उन अंकों की साजिश रच रहा है और क्लस्टर द्वारा रंग दे रहा है।

प्रधान घटक विश्लेषण (पीसीए) एक आयाम में कमी तकनीक है; यह "नए" चर नामक एक जोड़े में सभी चर की जानकारी को "सारांशित" करता है। प्रत्येक घटक कुल परिवर्तनशीलता के कुछ प्रतिशत की व्याख्या करने के लिए जिम्मेदार है। उदाहरण में आपने पढ़ा "यह दो घटक कुल परिवर्तनशीलता का 73.95% समझाते हैं"।

फ़ंक्शन clusplot()का उपयोग क्लस्टरिंग की प्रभावशीलता की पहचान करने के लिए किया जाता है। यदि आपके पास एक सफल क्लस्टरिंग है तो आप देखेंगे कि क्लस्टर मुख्य विमान में स्पष्ट रूप से अलग हो गए हैं। दूसरी ओर, आप देखेंगे कि क्लस्टर मुख्य विमान में विलीन हो जाता है जब क्लस्टरिंग असफल होती है।

प्रमुख घटक विश्लेषण पर आगे के संदर्भ के लिए आप विकि को पढ़ सकते हैं। यदि आप एक पुस्तक चाहते हैं जो मैं सुझाव देता हूं कि Izenmann द्वारा आधुनिक बहुभिन्नरूपी तकनीकें हैं, तो आपको पीसीए और के-साधन मिलेंगे।

उम्मीद है की यह मदद करेगा :)


1
आपके उत्तर के लिए धन्यवाद। clusplot()समारोह के बारे में मेरा एक और सवाल था । पीसीए मूल्यों और क्लस्टरिंग समूहों के बीच क्या संबंध है? मैंने किमी और पीसीए के बीच लिंक के बारे में कहीं और पढ़ा है, लेकिन मुझे अभी भी समझ में नहीं आया है कि उन्हें एक ही द्विभाजित ग्राफ पर कैसे प्रदर्शित किया जा सकता है। (शायद यह अपने आप में एक नया प्रश्न होना चाहिए)।
celenius

2
दरअसल, पीसीए मूल्य और क्लस्टर समूह स्वतंत्र हैं। पीसीए प्रत्येक अवलोकन के लिए "नया" निर्देशांक बनाता है mydata, यही वह है जो आप वास्तव में भूखंड पर देखते हैं। बिंदुओं के आकार fit$clusterको दूसरे पैरामीटर के उपयोग से प्लॉट किया जाता है clusplot()। हो सकता है कि आपको पीसीए में गहराई से देखना चाहिए। मुझे बताएं कि क्या इससे आपको मदद मिली, या यदि आपने आगे संदर्भ दिया।
deps_stats

1
यह मदद करता है (इस अर्थ में कि मैं अपनी समस्या पर गौर कर रहा हूं!)। fit$clusterपीसीए "निर्देशांक" से कैसे संबंधित है? मुझे लगता है कि मैं समझता हूं कि पीसीए कैसे काम करता है, लेकिन जैसा कि मैं इसे समझता हूं, प्रत्येक घटक को मूल डेटा से चर का उपयोग करके समझाया नहीं जा सकता है (बल्कि यह कच्चे डेटा का एक रैखिक संयोजन है), यही कारण है कि मुझे समझ नहीं आता कि यह कैसे हो सकता है समूहों से संबंधित है।
celenius

2
आपको लगभग मिल गया :) fit$clusterपीसीए से संबंधित नहीं है। क्या clusplot()करता है 'नई' निर्देशांकों का उपयोग कर बिन्दु और का उपयोग कर उन्हें लेबल करने के लिए है fit$cluster। मुझे क्लस्टर 3 के लिए '+', क्लस्टर 1 के लिए 'ओ' और क्लस्टर 2 के लिए एक त्रिकोण मिला। क्लस्टर clusplot()को देखने के लिए फ़ंक्शन उपयोगी है।
deps_stats

1
"नए" निर्देशांक से मेरा मतलब है PCA1 और PCA2। आप सही कह रहे हैं, वे पूरी तरह से असंबंधित हैं fit$cluster:)
deps_stats
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.