मशीन सीखने की समस्या से निपटने के लिए आप किस प्रोग्रामिंग लैंग्वेज की सलाह देते हैं?


12

वर्तमान में ऑक्टेव में काम कर रहे हैं, लेकिन खराब प्रलेखन के कारण प्रगति बहुत धीमी है।

मशीन सीखने की समस्याओं को हल करने के लिए किस भाषा को सीखना और उपयोग करना आसान है, और अच्छी तरह से प्रलेखित है? मैं एक छोटे डेटासेट (हजारों उदाहरण) पर प्रोटोटाइप देख रहा हूं, इसलिए गति महत्वपूर्ण नहीं है।

EDIT: मैं एक सिफारिश इंजन विकसित कर रहा हूं। इसलिए, मैं नियमित रूप से रैखिक प्रतिगमन, तंत्रिका जाल, एसवीएन या सहयोगी फ़िल्टरिंग का उपयोग करने में रुचि रखता हूं।


1
मैं एक बार भी सप्टक के साथ शुरू के बाद से मेरी प्रोफेसर (matlab के बाद से uuh इस पाठ्यक्रम प्रोफेसर के पुस्तकालय का उपयोग कर के दौरान मजा आया था, और सप्तक नहीं है matlab में था वास्तव में एक ही वाक्य रचना), लेकिन फिर मैं आर में स्विच करने और बस उड़ा रहा था यह बेहतर प्रलेखन और पुस्तकालयों की विविधता है।
स्टीफन

9
अजगर सीखना और पढ़ना बहुत आसान है, इसलिए मुझे लगता है कि यह स्वाद की बात है। मैं इन लिंक का सुझाव: अजगर-स्टेट-कार्यक्षेत्र , क्या-प्रोग्रामिंग भाषा के लिए सांख्यिक-निष्कर्ष , मशीन से सीखने का उपयोग-अजगर , clojure
स्टीफन

1
मैं आर, पायथन या मैटलैब की सिफारिश करूंगा। पते के लिए बहुत व्यापक कारणों से, मैं मतलाब छोड़ दूँगा। एक आँकड़े व्यक्ति के लिए, मैं आर के साथ जाऊँगा, एक प्रोग्रामर के लिए, मैं पायथन के साथ जाऊँगा। आंतरिक छोरों के लिए, मैं C / C ++ के साथ जाऊंगा। पर्याप्त पैमाने पर, मतलाब की लागत किसी भी लाभ से अधिक है।
आइटरेटर

1
या, जूलिया पर एक नजर ...
kjetil b halvorsen

जवाबों:


7

यदि आप कुछ आउट ऑफ बॉक्स उपयोग करना चाहते हैं, तो वीका एक शानदार शुरुआती बिंदु हो सकता है। कुछ भी प्रोग्राम करने की आवश्यकता नहीं है। आप अपने डेटा को आयात करते हैं, इसकी कल्पना करते हैं और विभिन्न मॉडलों के साथ खेलते हैं।

अगली बार चेन में आर होगा। कुछ लर्निंग कर्व जुड़े हुए हैं - खासकर आपके डेटा को आर डेटा संरचनाओं में फिट करने के लिए।

अगले मशीन प्रोग्रामिंग एल्गोरिदम हाथ प्रोग्रामिंग किया जाएगा। चूँकि आप पहले से ही ऑक्टेव का उपयोग कर रहे हैं और विकल्प की तलाश कर रहे हैं, हो सकता है कि आप जो चाहते हैं वह कोड एल्गोरिदम को किसी अन्य प्रणाली में सौंपने के लिए न हो, लेकिन केवल अन्य लोगों द्वारा लिखे गए पुस्तकालयों का उपयोग करने के लिए।

यदि आप आर पथ से नीचे जाते हैं, तो आपको लुइस टोर्गो (आर के साथ डेटा माइनिंग: लर्निंग विद केस स्टडीज) द्वारा पुस्तक मिल सकती है जो बहुत उपयोगी है (प्रकटीकरण: कोई संबद्धता नहीं)। यह गहराई से केस स्टडी का वर्णन करता है जिसे आप अपनी समस्या के अनुकूल बना सकते हैं।


15

यदि आप जिस विशिष्ट एल्गोरिदम में रुचि रखते हैं, उसे निर्दिष्ट करने पर आपको बेहतर उत्तर मिल सकते हैं। मैं इस तरह की चीज़ों के लिए आर का उपयोग करता हूं (मैं समय श्रृंखला अर्थमिति करता हूं, हालांकि, मशीन सीखने नहीं); आप यहां मौजूदा कार्यक्षमता देख सकते हैं:

http://cran.r-project.org/web/views/MachineLearning.html

और Hastie, तिब्शीरानी और फ्रीडमैन के सांख्यिकीय सीखने के तत्वों में विश्लेषण को लागू करने के लिए आर कोड है :

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

आर की पैकेजिंग प्रणाली बहुत ही शानदार है और लोगों को उनके कोड का दस्तावेजीकरण करने की ओर प्रेरित करती है, और यह खुला स्रोत है ताकि आप हमेशा कार्यान्वयन पर नज़र डाल सकें। मैंने कुछ वर्षों में मतलाब का उपयोग नहीं किया है और मशीन सीखने के लिए इसका उपयोग नहीं किया है - उनके टूलबॉक्स को आमतौर पर अच्छी तरह से प्रलेखित किया जाता है, लेकिन यह मूल्यपूर्ण हो सकता है, लेकिन उपयोगकर्ता द्वारा योगदान कोड किसी अन्य के रूप में खराब रूप से प्रलेखित होने वाला है।


11

ऑनलाइन मशीन सीखने की अपनी मशीन में, एंड्रयू एनजी ऑक्टेव / मैटलैब का उपयोग करने का सुझाव देता है।

मैं आपको इस पाठ्यक्रम के अगले संस्करण में दाखिला लेने की सलाह देता हूं: यह वास्तव में उपयोगी है और आप ऑक्टेव के बारे में और विभिन्न मशीन एल्गोरिदम के बारे में कई चीजें सीखेंगे।

EDIT 1 : मैं अन्य लोगों के साथ सहमत हूं जो आर। में काम करना पसंद करते हैं। हालांकि, मशीन सीखने की समस्याओं को हल करने में, आपकी अधिकांश गणना मैट्रिक्स के रूप में होगी, और जैसा कि @Wayne, Matlab या Octave भाषाओं द्वारा बताया गया है, बहुत लोकप्रिय हैं उनकी शक्ति के कारण। आप अन्य छात्रों द्वारा प्रस्तावित मशीन लर्निंग कोर्स अभ्यास के समाधान पर एक नज़र रखना चाह सकते हैं; निश्चित रूप से आप उनसे कुछ चीजें सीख सकते हैं:

गोककसेल गिथब

मेरवान जीठब


1
मैं पाठ्यक्रम के इस संस्करण में नामांकित हूं! समस्या यह है कि कोर्स के बाहर सबसे सरल चीजें करने से काम नहीं चलता है! दस्तावेज़ीकरण बेकार है।
बी सेवन

3
मेरा कहना है कि मतलाब (इस तरह ऑक्टेव) एक भयानक प्रोग्रामिंग भाषा है। यह इंजीनियरिंग और मशीन सीखने के क्षेत्र में बहुत लोकप्रिय है, लेकिन यह इसकी शक्ति के कारण है, और स्कूलों में इस्तेमाल किया जा रहा है, इसलिए नहीं कि यह एक आधुनिक प्रोग्रामिंग भाषा है। उस ने कहा, आप मशीन सीखने वाले ग्रंथों का सामना करने की अधिक संभावना रखेंगे जो इसका उपयोग आप की तुलना में आर या पायथन का उपयोग करेंगे।
वेन

1
मैं अपना सारा काम MATLAB में करता हूं, यह दुनिया में सबसे अच्छी प्रोग्रामिंग भाषा नहीं है (मैं कहूंगा कि आर भी बदतर था; ओ), लेकिन यह मशीन सीखने के अनुसंधान के लिए बहुत अच्छा है क्योंकि इसके साथ दृढ़ता के लायक है। तंत्रिका नेटवर्क के लिए, NETLAB पुस्तकालय की तलाश करें, और GPML पुस्तकालय के साथ गौसियन प्रक्रिया की भी जांच करें, दोनों किट के उत्कृष्ट बिट्स हैं, और IIRC दोनों ओक्टेव के साथ काम करते हैं। नियमित रूप से रैखिक प्रतिगमन के लिए, यह MATLAB की केवल एक पंक्ति है, गैर-रेखीय मॉडल के लिए, GKM टूलबॉक्स है, theoval.cmp.uea.ac.uk/projects/gkm (क्षमा करें , अभी तक कोई माफी नहीं है)।
डिक्रान मार्सुपियल

1
मैट्रिक्स गणना आर में भी की जा सकती है, हालांकि अंकन, उदाहरण के लिए, t(A) %*% Bमैटलैब की तुलना में कम सहज है।
इटाराम

1
क्या सी #, जावा, पायथन और पर्ल जैसी उच्च स्तरीय भाषा के लिए अच्छी मैट्रिक्स लाइब्रेरी नहीं हैं?
बी सेवन

10

Scikit सीखने (अब sklearn) मापदंड आप (डेटा, मॉडल, और परिणाम से निपटने के लिए गति, अच्छी तरह से डिजाइन वर्ग) में वर्णित के कई को पूरा करना चाहिए, लक्षित अनुप्रयोगों (एल 1 / एल 2 दंडित प्रतिगमन, SVM, आदि) भी शामिल है। यह एक समृद्ध प्रलेखन सेट और बहुत सारे उदाहरणों के साथ आता है । जेएमएलआर में प्रकाशित एक पेपर में इसका विवरण भी देखें ।

पायथन में एक वैकल्पिक ढांचा ऑरेंज है , जिसका उपयोग एक सौम्य GUI के माध्यम से या सीधे कमांड लाइन पर किया जा सकता है। सहयोगी फ़िल्टरिंग के लिए, pyrsvd दिलचस्प हो सकता है, लेकिन मैंने कभी इसकी कोशिश नहीं की। हालाँकि, Apache Mahout निश्चित रूप से सहयोगी फ़िल्टरिंग के लिए उपयोग किया जा सकता है ।


1

यदि आप एक औद्योगिक प्रोटोटाइप (अर्थात ऐसा कुछ जो वास्तविक लोगों द्वारा उपयोग किया जाता है और शुद्ध अनुसंधान के लिए नहीं) का उल्लेख करते हैं, तो इस समय अजगर जाने का एकमात्र तरीका है।

यदि आप Matlab, Octave या R का उपयोग करते हैं, तो आपको एमएल रिसर्च के लिए पर्यावरण का उपयोग करने में आसानी होती है, लेकिन उपयोगकर्ता इंटरफ़ेस या वेब सेवा के साथ मॉडल को काम पर रखना दुःस्वप्न होगा।

अजगर में हम दोनों एक व्यापक वैज्ञानिक पारिस्थितिकी तंत्र के लिए भाग्यशाली रहे हैं ( sklearn एमएल के लिए, wragling डेटा के लिए पांडा, दृश्य के लिए matplotlib / Seaborn) और एक आवेदन पारिस्थितिकी तंत्र (के बारे में सोचना Django और उसके बाकी ढांचा )।

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

अपने आप को एक बॉक्स में लपेटो मत, एक सामान्य भाषा का उपयोग करें!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.