5

मैं सहयोगात्मक छनन एल्गोरिथ्म स्पार्क में लागू बाहर कोशिश कर रहा हूँ और निम्न समस्या में चल रहा साथ MLLib सहयोगात्मक छनन:स्पार्क नया उपयोगकर्ता

u1|p1|3 
u1|p2|3 
u2|p1|2 
u2|p2|3 
:

मान लीजिए मैं निम्नलिखित डेटा के साथ एक मॉडल ट्रेन

अब अगर मैं निम्नलिखित डेटा के साथ परीक्षण:

u1|p1|1 
u3|p1|2 
u3|p2|3 

मैं उपयोगकर्ता U3 'के लिए किसी भी रेटिंग देख कभी नहीं, शायद क्योंकि है कि उपयोगकर्ता प्रशिक्षण डेटा में प्रकट नहीं होता। क्या यह ठंड शुरू करने की समस्या के कारण है? मैं इस धारणा के तहत था कि यह मुद्दा केवल एक नए उत्पाद पर लागू होगा। इस मामले में, मैं अपेक्षा की होगी प्रशिक्षण डेटा में 'u1' और 'यू 2' के बाद से 'यू 3' के लिए एक भविष्यवाणी 'U3' के समान रेटिंग जानकारी नहीं है। क्या यह मॉडल-आधारित और मेमोरी-आधारित सहयोगी फ़िल्टरिंग के बीच भेद है?

+0

क्या आप उपयोगकर्ता और उत्पाद को गैर-इंटीग्रर्स के रूप में प्रशिक्षित करने में सक्षम थे? जब मैं उस प्रारूप में ट्रेन करने की कोशिश करता हूं तो मुझे त्रुटि बताती है: रेटिंग, (int (self.user), int (self.product), float (self.rating)) – jKraut

+0

ऐसा लगता है कि हम समान समस्याएं प्रभावित करते हैं: भविष्यवाणी कैसे करें नए मॉडल को पूरे मॉडल को बरकरार रखने के बिना? –

उत्तर

1

मैं तुम्हें ए एल एस एल्गोरिथ्म के बारे में बात कर रहे हैं मान?

'U3' अपने प्रशिक्षण सेट की जोड़ी नहीं है और इसलिए अपने मॉडल है कि उपयोगकर्ता के बारे में कुछ भी नहीं जानता है। सभी शायद सभी उपयोगकर्ताओं पर औसत रेटिंग वापस कर सकते हैं।

स्पार्क 1.3.0 स्काला कोड में देख रहे हैं: MatrixFactorizationModelALS.train() की कोशिश करता द्वारा लौटाए सुविधा वैक्टर में उपयोगकर्ता और उत्पाद देखने के लिए जब आप predict() कहते हैं। मैं एक NoSuchElementException मिलता है जब मैं एक अज्ञात उपयोगकर्ता की रेटिंग भविष्यवाणी करने के लिए प्रयास करें। यह सिर्फ इस तरह से लागू किया गया है।

+0

धन्यवाद। बिल्कुल यही मैने सोचा। कि MLLib ए एल एस के अलावा समर्थन करता है, वहाँ अन्य सहयोगी फ़िल्टरिंग एल्गोरिदम हैं? –

+0

एएलएस स्पार्क 1.3.0 के रूप में एकमात्र एल्गोरिदम प्रतीत होता है: https://spark.apache.org/docs/latest/mllib-guide.html – stholzm