2015-07-20 16 views
6

कैसे SparseVector बनाने के लिए और घने वेक्टर अभ्यावेदनविरल वेक्टर बनाम घने वेक्टर

अगर DenseVector है:

denseV = np.array([0., 3., 0., 4.]) 

क्या विरल वेक्टर प्रतिनिधित्व हो जाएगा?

+1

जो लोग "विरल वेक्टर बनाम घने वेक्टर" के शीर्षक पढ़ सकते हैं और जब जो, [इस उत्तर] (http उपयोग करने के लिए की एक विवरण देख रहे थे के लिए: // stackoverflow। कॉम/ए/26706528/877069) में वह जानकारी है जिसे आप ढूंढ रहे हैं। –

उत्तर

11

जब तक मैं पूरी तरह अपने संदेह गलत समझा है, MLlib data type documentation काफी स्पष्ट रूप से इस दिखाता है:

import org.apache.spark.mllib.linalg.Vector; 
import org.apache.spark.mllib.linalg.Vectors; 

// Create a dense vector (1.0, 0.0, 3.0). 
Vector dv = Vectors.dense(1.0, 0.0, 3.0); 
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries. 
Vector sv = Vectors.sparse(3, new int[] {0, 2}, new double[] {1.0, 3.0}); 

कहाँ Vectors.sparse का दूसरा तर्क सूचकांक की एक सरणी है, और तीसरा तर्क वास्तविक मूल्यों की सरणी है उन सूचकांक में।

+0

ओह, मैं सूचकांक की सही गिनती नहीं कर रहा था। स्पैरसेवी = स्पैर्सवेक्टर (4, [0, 1, 2, 3], [0., 3., 0., 4.]) –

+1

नंबर यानी 1 के बाद डॉट का महत्व क्या है? –

+1

डॉट सिर्फ एक फ़्लोटिंग पॉइंट प्रकार इंगित करता है। '1.'' 1.0' के बराबर है –

5

स्पैस वेक्टर तब होते हैं जब आपके पास वेक्टर में शून्य के रूप में बहुत सारे मूल्य होते हैं। जबकि एक घना वेक्टर होता है जब वेक्टर में अधिकांश मान शून्य नहीं होते हैं।

Vector sparseVector = Vectors.sparse(4, new int[] {1, 3}, new double[] {3.0, 4.0}); 

नीचे दिए गए लिंक समग्र अवधारणा की अच्छी समझ प्राप्त करने के लिए बहुत उपयोगी है:

आप घने वेक्टर आपके द्वारा निर्दिष्ट से एक विरल वेक्टर बनाने के लिए है, तो निम्न सिंटैक्स का उपयोग।

http://techchai.com/2017/03/13/sparse-vectors-in-apache-spark/

धन्यवाद

संबंधित मुद्दे