मेरे पास एक वेक्टर (एक्स 2) है और मैं उन समूहों की जांच करना चाहता हूं जो वे बना सकते हैं। मैंने के-साधन विश्लेषण किया है, जिसमें 2 क्लस्टर हैं: आकार X2 = (19,1)

kmeans = KMeans(n_clusters=2,random_state=123)                 
kmeans.fit(X2)                                                
label = kmeans.fit_predict(X2)
 
print(label)
[0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0]

अब मैं इन 2 समूहों का स्कैटर प्लॉट बनाना चाहूंगा। क्या कोई मुझे साजिश में मदद कर सकता है।

मुझे यकीन नहीं है कि मैं अपने वेक्टर (एक्स 2) के साथ लेबल को कैसे जोड़ सकता हूं और एक्स-अक्ष और वाई-अक्ष में क्या रखा जा सकता है।

मैं ऐसा कुछ करना चाहता हूं: K का अर्थ है 2 क्लस्टर

लेकिन मुझे नहीं पता कि प्लॉट को कैसे व्यवस्थित किया जाए, क्योंकि लेबल x-अक्ष नहीं हैं। मैं अब y-अक्ष (X2), जो गुम है वह है x-अक्ष और लेबल को रंगों के साथ X2 से कैसे संबद्ध करें

1
Jeniffer Barreto 28 अक्टूबर 2021, 14:53

2 जवाब

सबसे बढ़िया उत्तर

आप अपने x बिंदुओं को अनुक्रमणिका के रूप में और y बिंदुओं को वास्तविक मान (X2) के रूप में प्लॉट कर सकते हैं। और अगर हम इस बिंदु पर आते हैं कि आप रंगों को जोड़ना चाहते हैं तो आप matplotlib की स्कैटर विधि के 'c' कीवर्ड का उपयोग कर सकते हैं।

उदाहरण के तौर पे:

plt.scatter([i for i in range(len(X2))], X2, c=labels)

रंग (सी) = लेबल, उन अनुक्रमणिकाओं को बिखेरने वाला है जिनमें समान रंग के साथ समान लेबल होता है। आप प्रत्येक बिंदु को लाल करने के लिए c="red" का भी उपयोग कर सकते हैं।

3
ExDet 28 अक्टूबर 2021, 15:39
2
पहला तर्क सरल range(len(X2)) के समान है।
 – 
Basil
28 अक्टूबर 2021, 15:46
शुक्रिया! ठीक यही मैं चाहता हूँ!
 – 
Jeniffer Barreto
28 अक्टूबर 2021, 16:14
क्या आप जानते हैं कि मैं प्रत्येक रंग के लिए किंवदंती कैसे निर्धारित कर सकता हूं?
 – 
Jeniffer Barreto
28 अक्टूबर 2021, 16:27
मुझे नहीं पता कि 1D सरणी के मामले में इसे कैसे किया जाए। मैं X2 को कई सरणियों में विभाजित करने की अनुशंसा करता हूं जहां प्रत्येक नई सरणी में X2 के तत्व होते हैं जो labels में संबंधित क्लस्टर आईडी से जुड़े होते हैं। यह एक गैर-तुच्छ अभ्यास है - मेरा मानना ​​है कि आप मूल X2 से प्रत्येक तत्व के प्लॉट किए गए "x" इंडेक्स को संरक्षित करना चाहेंगे, अन्यथा प्लॉट वैसा नहीं दिखेगा जैसा आप उम्मीद करते हैं।
 – 
Basil
28 अक्टूबर 2021, 17:04
@JenifferBarreto, आपका स्वागत है! और मैं निश्चित रूप से नहीं जानता लेकिन थोड़ी खोज की, आप प्रत्येक क्लस्टर लेबल के लिए विशिष्ट रंग दे सकते हैं, इसलिए यह ['लाल', 'लाल', 'नीला', 'नीला'] हो सकता है क्योंकि आप जानते हैं कौन सा लेबल कौन सा रंग है, किंवदंती का उपयोग करना आसान हो सकता है।
 – 
ExDet
28 अक्टूबर 2021, 17:07

आपके द्वारा प्रदर्शित प्लॉट एक 3-आयामी ग्राफ़िक, स्पेस X (x, y) और वर्ग है।

यदि मैं आपके प्रश्न को समझता हूं, तो आप ऐसे नमूने एकत्र कर रहे हैं जो एक आयाम में हैं। आपको 3-आयामी ग्राफ़ की नहीं बल्कि 2-आयामी की आवश्यकता है। आप ग्राफिक के रंग को भूल सकते हैं और वर्ग (-1,1) का प्रतिनिधित्व करने के लिए y-अक्ष का उपयोग कर सकते हैं।

यदि आप एक नकली आयाम (y = 0) जोड़कर चाहते हैं तो आप उन्हें 2-आयामी स्थान पर प्रोजेक्ट कर सकते हैं और अनुमानित वर्ग के साथ matplotlib के रंग पैरामीटर का उपयोग कर सकते हैं।

0
Harold G 28 अक्टूबर 2021, 15:12