2012-03-28 10 views
21

मैं एक हल्के जावा लाइब्रेरी की तलाश में हूं जो कुछ हद तक हजारों डेटा पॉइंट्स के साथ उच्च आयामी (मेरे मामले में 32) डेटासेट में लगभग समान रूप से वितरित डेटा के लिए लोकैलिटी सेंसिटिव हैशिंग द्वारा निकटतम पड़ोसी खोजों का समर्थन करता है।जावा में एलएसएच पुस्तकालय

यह एक क्वेरी के लिए बाल्टी में सभी प्रविष्टियों को प्राप्त करने के लिए काफी अच्छा है। जिनकी मुझे वास्तव में आवश्यकता है, उन्हें मेरी समस्या में शामिल कुछ फ़िल्टर पैरामीटर के विचाराधीन तरीके से एक अलग तरीके से संसाधित किया जा सकता है।

मुझे पहले से ही likelike मिला है, लेकिन उम्मीद है कि कुछ छोटा और बिना किसी अन्य उपकरण की आवश्यकता है (जैसे अपाचे हडोप की तरह)।

+0

आप कुछ भी मिला? मैं यूएनक्लिडियन दूरी के साथ केएनएन के लिए मेरी मीट्रिक के रूप में इसकी तलाश कर रहा था। –

+0

वास्तव में नहीं। लेकिन मुझे लगता है कि मुझे अपने द्वारा एक कार्यान्वयन के साथ आना होगा। हालांकि सवाल अभी भी हैश फ़ंक्शन चुनने का तरीका है ... – s1lence

+1

आप http://ttic.uchicago.edu/~gregory/download.html पर मैटलैब कार्यान्वयन में हैश फ़ंक्शन से प्रारंभ कर सकते हैं –

उत्तर

1

यह एक नहीं है: http://code.google.com/p/lsh-clustering/

मैं इसे परीक्षण करने के लिए समय नहीं पड़ा है लेकिन कम से कम यह संकलित करता है।

1

एक और एक यहाँ: https://github.com/allenlsy/knn

यह KNN के लिए LSH उपयोग करता है। मैं वर्तमान में जांच कर रहा हूँ यह प्रयोज्य है =)

6

हो सकता है कि यह एक:

"TarsosLSH इलाका संवेदनशील हैशिंग (LSH), बहुआयामी वैक्टर कि sublinear समय में चल रही है के लिए एक व्यावहारिक निकटतम पड़ोसी खोज एल्गोरिथ्म को लागू करने के लिए एक जावा पुस्तकालय है यह कई लोकैलिटी सेंसिटिव हैशिंग (एलएसएच) परिवारों का समर्थन करता है: यूक्लिडियन हैश परिवार (एल 2), शहर ब्लॉक हैश परिवार (एल 1) और कोसाइन हैश परिवार। पुस्तकालय वास्तविक कार्यों को पूरा करने में सक्षम होने के बीच मीठे स्थान पर पहुंचने की कोशिश करता है, और एलएसएच कैसे काम करता है इस पर एक प्रदर्शन के रूप में कार्य करने के लिए पर्याप्त कॉम्पैक्ट। "

कोड पाया जा सकता है here

1

ELKI डाटा खनन ढांचा एक LSH सूचकांक के साथ आता है। इसका उपयोग अधिकांश एल्गोरिदम के साथ किया जा सकता है (जो कुछ भी श्रेणी या एनएन खोजों का उपयोग करता है) और कभी-कभी बहुत अच्छी तरह से काम करता है।

अन्य मामलों में, एलएसएच एक अच्छा दृष्टिकोण प्रतीत नहीं होता है। एलएसएच पैरामीटर को सही करने के लिए यह काफी मुश्किल हो सकता है: यदि आप कुछ पैरामीटर बहुत अधिक चुनते हैं, तो रनटाइम बहुत बढ़ता है (रैखिक स्कैन के लिए सभी तरह से)। यदि आप उन्हें बहुत कम चुनते हैं, तो सूचकांक बहुत अनुमानित हो जाता है और कई पड़ोसियों को खो देता है।

यह शायद LSH साथ सबसे बड़ी चुनौती है: अच्छा मानकों खोजने, कि वांछित speedup और इंडेक्स से बाहर एक अच्छा पर्याप्त सटीकता हो रही उपज ...

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