2010-05-26 12 views
33

मैं एक पुस्तकालय है कि, आदर्श, निम्नलिखित सुविधाएं होती हैं रहा हूँ उपयोग करने के लिए पुस्तकालय सीखने:किस मशीन

  • बहुआयामी डेटा (आदर्श समानता या दूरी मैट्रिक्स पर) श्रेणीबद्ध क्लस्टरिंग लागू करता
  • लागू करता है समर्थन वेक्टर मशीनों
  • सी ++
  • कुछ हद तक दर्ज है में है (यह एक सबसे कठिन प्रतीत हो रहा है)

मैं इसे सी ++ में रखना चाहता हूं, क्योंकि मैं उस भाषा के साथ सबसे अधिक आरामदायक हूं, लेकिन लाइब्रेरी इसके लायक होने पर मैं किसी अन्य भाषा का भी उपयोग करूंगा। मैंने गुमराह किया है और कुछ पाया है, लेकिन मेरे पास वास्तव में उन सभी को आजमाने का समय नहीं है, इसलिए मैं सुनना चाहता हूं कि अन्य लोगों के अनुभवों के लिए क्या था। अगर आप जिस लाइब्रेरी की अनुशंसा करते हैं उसके साथ आपको कुछ अनुभव है तो कृपया केवल जवाब दें।

पीएस .: मैं क्लस्टरिंग और एसवीएम के लिए विभिन्न पुस्तकालयों का भी उपयोग कर सकता हूं।

+0

https://github.com/josephmisiti/awesome-machine-learning –

उत्तर

4

ठीक है, पूर्णता के लिए मैं अंत में जो कुछ भी चला गया उसके साथ पोस्ट करूंगा। मैं अब क्लस्टरिंग भाग के लिए scipy-cluster का उपयोग कर रहा हूं। यह अब तक का सबसे बहुमुखी कार्यान्वयन है। मुझे लगता है कि मैं एसवीएम भाग के लिए libSVM (अब इसमें एक पायथन इंटरफेस है) के साथ जाऊंगा। मैं पाइथन के साथ जा रहा हूं क्योंकि सी ++ में पदानुक्रमित क्लस्टरिंग का वास्तव में कोई उपयुक्त कार्यान्वयन नहीं हुआ था (C Clustering Library माइक्रोएरे के लिए विशिष्ट है और बहुआयामी डेटा का समर्थन नहीं करता है)।

9

WEKA (http://www.cs.waikato.ac.nz/ml/weka/) एक उत्कृष्ट ओपन सोर्स मशीन लर्निंग लाइब्रेरी है जो सी ++ को छोड़कर आपकी अधिकांश आवश्यकताओं को पूरा करती है - यह जावा में लिखी गई है। यह बहुत अच्छी तरह से प्रलेखित है, सपोर्ट वेक्टर मशीनों और क्लस्टरिंग का समर्थन करता है और इसके साथ मुझे बहुत अच्छे अनुभव हुए हैं।

+11

वीका में एसवीएम कार्यान्वयन libsvm लेखकों द्वारा किया जाता है, वीका टीम नहीं। इसके अलावा, वीका पूरी तरह से अपने डिजाइन में दक्षता नहीं है। वीका छोटे डेटासेट के साथ खेलने के लिए केवल अच्छा है। –

15

केवल कुछ एमएल पुस्तकालय हैं जिनका मैंने पर्याप्त उपयोग किया है ताकि मैं उन्हें सलाह दे सकूं; dlib ml निश्चित रूप से उनमें से एक है।

Sourceforge डाउनलोड here; और रक्तस्राव-किनारे चेक-आउट:

hg clone http://hg.code.sf.net/p/dclib/code dclib-code 

मूल पुस्तकालय निर्माता और वर्तमान रखरखाव डेविस किंग है।

बनाम प्रासंगिक dlib सुविधाओं आपकी इच्छासूची:

  • अच्छा प्रलेखन: मुक्त, खुला स्रोत उपयोगकर्ताओं/डेवलपर्स की एक अपेक्षाकृत छोटे समूह के निर्देश पर पुस्तकालयों के लिए, यह शायद के रूप में यह हो जाता है के रूप में अच्छा है ; पांच साल के देव इतिहास के दौरान परिष्कृत सामान्य दस्तावेज़ों से अलग, अक्सर Intro to dlib, एक (कम ट्रैफिक) फ़ोरम; और उत्कृष्ट उदाहरण (एसवीएम के लिए कम से कम एक सहित) का एक बड़ा सेट।

  • सी ++: जहां तक ​​मुझे पता है सी ++ में 100%।

  • समर्थन-वेक्टर मशीन एल्गोरिदम: हाँ; वास्तव में, एसवीएम मॉड्यूल इस लाइब्रेरी के सबसे हालिया अपडेट का केंद्र रहा है।

  • पदानुक्रमित क्लस्टरिंग एल्गोरिदम: बॉक्स से बाहर नहीं; हालांकि, के-पैक क्लस्टरिंग के लिए पैक किया गया कोड है।जाहिर है हर तकनीक से परिणाम बहुत अलग हैं, लेकिन समानता मीट्रिक और बाद पुनरावर्ती/पुनरावृत्ति विभाजन कदम की गणना दोनों के दिल में हैं - दूसरे शब्दों में, पदानुक्रमित क्लस्टरिंग के लिए गणना इंजन सब वहाँ है । एचसी के लिए मौजूदा क्लस्टरिंग मॉड्यूल को अनुकूलित करने के लिए, कोड की दो पंक्तियों से अधिक ले जाएगा, लेकिन यह भी को दिया गया एक बड़ा प्रयास नहीं है, आप लगभग डेटा-प्रस्तुति स्तर पर काम कर रहे हैं।

dlib ml में इसकी अनुशंसा करने के लिए कुछ अतिरिक्त अंक हैं। यह एक परिपक्व लाइब्रेरी है (यह अब संस्करण 17.x पर है, संस्करण 1.x को 2005 के अंत में कभी-कभी रिलीज़ किया गया था, मुझे विश्वास है) फिर भी यह सक्रिय विकास के तहत भी रहता है, जैसा कि रेपो लॉग द्वारा प्रमाणित किया गया है (अंतिम अपडेट, 17.27, 17 था मई 2010) और अंतिम प्रतिबद्धता (23 मई 2010)। इसके अलावा, इसमें कुछ अन्य एमएल तकनीक भी शामिल हैं (उदाहरण के लिए, बेयसियन नेटवर्क, कर्नेल तरीके आदि)। और तीसरा, dllib एमएल में मैट्रिक्स गणना और अनुकूलन के लिए उत्कृष्ट "समर्थन" पुस्तकालय हैं - जिनमें से दोनों कई एमएल तकनीकों के मौलिक बिल्डिंग ब्लॉक हैं।

स्रोत में, मैंने देखा है कि dlib मिलीलीटर बीएसएल (बूस्ट?) है, जो एक खुला स्रोत लाइसेंस है, हालांकि मैं लाइसेंस के इस प्रकार के बारे में कुछ और नहीं जानता अंतर्गत लाइसेंस प्राप्त है।

+0

आप [एमएलपीएक्स सी ++ लाइब्रेरी] (http://mlpack.org) को भी देखना चाहते हैं, जिसमें कई मशीन लर्निंग एल्गोरिदम – mtall

+0

@mtall - MLPACK खुराक में 'mlpack में तरीके' में सूचीबद्ध SVM नहीं लगता है । http://mlpack.org/doxygen.php – Robert

9

जनरल मशीन सीखने पुस्तकालयों:

इन दो Weka के समान हैं। हालांकि उनके मन में दक्षता है।

1.Shark (LGPL)

https://github.com/Shark-ML/Shark/

2.Waffles (LGPL)

http://waffles.sourceforge.net/

SVM और अन्य रैखिक classifiers:

1.LibSVM (BSD शैली)

2. लिबली पास (BSD शैली)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

वे सब के सब सी में हैं ++।

3

यह सी ++ नहीं है, लेकिन आप आर का उपयोग करने पर विचार करते हैं। विशेष रूप से, the machine learning view on CRAN पर एक नज़र डालें, जो वेका और libsvm सहित उपर्युक्त पुस्तकालयों में से कई दिखाता है।

0

अतिरिक्त संभव विकल्पों की एक जोड़े:

सशर्त रैंडम फील्ड्स (सीआरएफ): http://www.chokkan.org/software/crfsuite/

छिपे हुए मार्कोव मॉडल (HMM): http://www.cs.au.dk/~asand/?page_id=152

एक सामान्य एमएल पुस्तकालय के लिए, मशाल पर विचार (संस्करण 7, लेखन के समय के अनुसार): https://github.com/andresy/torch

ऑरेंज सिस्टम लागू है सी में ented ++ और एक पुस्तकालय के रूप में इस्तेमाल किया जा सकता है, लेकिन अपनी कार्यक्षमता दोनों लचीला स्क्रिप्टिंग के लिए अजगर रैपर के रूप में उजागर पर और साथ ही दृश्य प्रोग्रामिंग केंद्रित है: http://orange.biolab.si/