मशीन सीखने के लिए पायथन बनाम आर


101

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

अकादमिया और उद्योग में लोग क्या उपयोग कर रहे हैं, और सिफारिश क्या है?


3
खैर, किस प्रकार का मशीन लर्निंग (इमेज / वीडियो? एनएलपी? फाइनेंशियल? एस्ट्रोनॉमी?), कौन सा क्लासिफायर, किस आकार का डेटासेट (एमबी? जीबी? टीबी?), किस पैमाने पर, किस लेटेंसी पर, किस प्लेटफॉर्म पर (मोबाइल / सिंगल-कंप्यूटर) / मल्टीकोर / क्लस्टर / बादल) ...? आपके आवेदन / उपयोग में किन विशिष्ट पुस्तकालयों की आवश्यकता होगी और क्या आपने जाँच की है कि प्रत्येक भाषा में क्या उपलब्ध है? क्या आप सिर्फ अपने व्यक्तिगत सीखने के लिए एक खिलौना एप्लिकेशन का निर्माण कर रहे हैं या क्या यह कभी भी उत्पाद हो जाता है? ओपन-सोर्स या मालिकाना का उपयोग? क्या आप अन्य लोगों या मौजूदा ऐप्स के साथ काम कर रहे हैं, और वे क्या उपयोग / समर्थन करते हैं? वेब फ्रंट / GUI? आदि
smci

1
एक अवलोकन यह है कि पायथन का उपयोग मशीन सीखने वाले लोगों द्वारा बड़े डेटासेट के साथ किया जाता है जबकि R का उपयोग पारंपरिक "सांख्यिकीविदों" द्वारा अधिक किया जाता है, जैसे कि सैकड़ों डेटा बिंदुओं के साथ मनोविज्ञान प्रयोगों के साथ काम करने वाले। हालांकि यह अंतर कम हो सकता है।
xji

अजगर सब तरह से आदमी! मैं अपने सहयोगियों से एक दिन में 4 बार करता हूं। और आप सभी प्रकार के प्रोग्रामिंग कार्यों के लिए अजगर का उपयोग कर सकते हैं, न केवल मशीन लर्निंग।
फ्रांसेस्को पेगोरारो

जवाबों:


91

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

  • मशीन लर्निंग के 2 चरण हैं। मॉडल बिल्डिंग और भविष्यवाणी चरण। आमतौर पर, मॉडल निर्माण एक बैच प्रक्रिया के रूप में किया जाता है और पूर्वानुमान वास्तविक समय पर किए जाते हैं । मॉडल निर्माण प्रक्रिया एक गणना गहन प्रक्रिया है जबकि भविष्यवाणी एक पल में होती है। इसलिए, पायथन या आर में एक एल्गोरिथ्म का प्रदर्शन वास्तव में उपयोगकर्ता के बारी-बारी के समय को प्रभावित नहीं करता है। अजगर 1, आर 1।
  • उत्पादन: पायथन और आर के बीच वास्तविक अंतर उत्पादन तैयार होने में आता है। अजगर, जैसे कि एक पूर्ण विकसित प्रोग्रामिंग भाषा है और कई संगठन अपने उत्पादन प्रणालियों में इसका उपयोग करते हैं। आर एक सांख्यिकीय प्रोग्रामिंग सॉफ्टवेयर है, जो कई शिक्षाविदों द्वारा पसंद किया जाता है और डेटा विज्ञान में वृद्धि और पुस्तकालयों की उपलब्धता और खुला स्रोत होने के कारण, उद्योग ने आर का उपयोग करना शुरू कर दिया है। इनमें से कई संगठनों के पास जावा, सी ++, सी # में अपनी उत्पादन प्रणाली है। अजगर आदि तो, आदर्श रूप से वे एक ही भाषा में विलंबता और रखरखाव के मुद्दों को कम करने के लिए भविष्यवाणी प्रणाली रखना चाहेंगे । अजगर 2, आर 1।
  • पुस्तकालय: दोनों भाषाओं में विशाल और विश्वसनीय पुस्तकालय हैं। R के पास कई डोमेन के लिए 5000 से अधिक पुस्तकालय हैं, जबकि पाइथन में कुछ अविश्वसनीय पैकेज हैं जैसे पंडों, NumPy, SciPy, Scikit Learn, Matplotlib । अजगर 3, आर 2।
  • विकास: दोनों भाषाओं की व्याख्या की गई भाषाएं हैं। कई लोग कहते हैं कि अजगर को सीखना आसान है, यह लगभग अंग्रेजी पढ़ने के लिए है (इसे हल्के नोट पर रखने के लिए) लेकिन आर को अधिक मेहनत करने की आवश्यकता होती है। इसके अलावा, दोनों के पास पायथन और आर के लिए RStudio के लिए अच्छे आईडीई (स्पाइडर आदि) हैं। अजगर 4, आर 2।
  • गति: आर सॉफ्टवेयर को शुरू में बड़ी संगणना (जैसे nxn मैट्रिक्स गुणन) के साथ समस्या थी। लेकिन, इस मुद्दे को क्रांति विश्लेषिकी द्वारा आर की शुरूआत के साथ संबोधित किया गया है। उनके पास C में पुन: अभिकलन गहन संचालन है जो धधकते हुए तेजी से होता है। पायथन एक उच्च स्तरीय भाषा है जो अपेक्षाकृत धीमी है। पायथन 4, आर 3।
  • विज़ुअलाइज़ेशन: डेटा साइंस में, हम अक्सर उपयोगकर्ताओं को पैटर्न दिखाने के लिए डेटा प्लॉट करते हैं। इसलिए, सॉफ़्टवेयर चुनने में विज़ुअलाइज़ेशन एक महत्वपूर्ण मानदंड बन जाता है और आर इस संबंध में पूरी तरह से पायथन को मार देता है। एक अविश्वसनीय ggplot2 पैकेज के लिए हैडली विकम को धन्यवाद। आर हाथ नीचे कर जीतता है। पायथन 4, आर 4।
  • बिग डेटा से निपटना: आर की बाधाओं में से एक यह सिस्टम मेमोरी (रैम) में डेटा स्टोर करता है। इसलिए, जब आप बिग डेटा को संभाल रहे हैं तो रैम क्षमता एक बाधा बन जाती है। पायथन अच्छा करता है, लेकिन मैं कहूंगा, कि आर और पायथन दोनों में एचडीएफएस कनेक्टर हैं, हडॉप इन्फ्रास्ट्रक्चर का लाभ उठाने से प्रदर्शन में काफी सुधार होगा। तो, पायथन 5, आर 5।

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


15
विज़ुअलाइज़ेशन में शायद ही अजगर की धड़कन होती है। मुझे लगता है कि यह उल्टा है; न केवल अजगर के पास ggplot होता है (जो कि मैं खुद का उपयोग नहीं करता हूं, क्योंकि समुद्री जीवों की तरह अधिक पायथोनिक विकल्प हैं ), यह ब्राउज़र में bokeh जैसे पैकेज के साथ इंटरैक्टिव विज़ुअलाइज़ेशन भी कर सकता है ।
एमरे

10
इसके अलावा R में शाइनी के साथ इंटरएक्टिव करने की क्षमता है।
स्टेनम

13
लाइब्रेरियर्स - मैं इससे बिल्कुल सहमत नहीं हूं। R अब तक का सबसे अमीर उपकरण सेट है, और इससे भी अधिक यह एक उचित तरीके से जानकारी प्रदान करता है, आंशिक रूप से S को विरासत में, आंशिक रूप से प्रतिष्ठित विशेषज्ञों के सबसे बड़े समुदाय द्वारा।
रापायो

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

8
आपके लिए "बिग डेटा से निपटने" टिप्पणी, मैं जोड़ूंगा कि अजगर अपाचे स्पार्क द्वारा समर्थित 3 भाषाओं में से एक है, जिसमें तेज गति से धधक रही है। R के C बैक एंड होने के बारे में आपकी टिप्पणी सत्य है, लेकिन क्या स्किक्लिअन लाइब्रेरी बहुत अधिक तेज़ है। मुझे लगता है कि आपकी पोस्ट में अच्छा संतुलन है, लेकिन मैं मानता हूं कि गति कम से कम एक टाई है, और स्केलेबिलिटी (यानी बड़े डेटा को संभालना) निश्चित रूप से अजगर के पक्ष में है।
jagartner

23

"अजगर बेहतर है" या "आर एक्स से बहुत बेहतर है" जैसा कुछ भी नहीं है।

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

लेकिन ईमानदार होने के लिए, यदि आप एक अच्छा सी प्रोग्रामर प्राप्त करते हैं, तो वह वही कर सकता है जो लोग अजगर या आर में करते हैं, यदि आपको एक अच्छा जावा प्रोग्रामर मिला है तो वह जावा में सब कुछ (निकट) भी कर सकता है।

इसलिए जिस भाषा में आप सहज हैं, उसी से चिपके रहें।


5
लेकिन पुस्तकालयों का क्या? उन्नत आर संकुल हैं (रैनफोम फ़ॉरेस्ट या कैरेट के बारे में सोचें) जो एक सामान्य प्रयोजन की भाषा में हमारे जैसे सी या जावा के लिए फिर से लागू करने के लिए अव्यवहारिक होगा
सैंटियागो सिफस


1
हाँ हो सकता है, लेकिन आर आप सभी को डेटा के बड़े सेट को विफल करने के लिए प्रदर्शन की आवश्यकता नहीं है और ज्यादातर समय आपके पास औद्योगिक उपयोग में वास्तव में बड़े डेटासेट हैं।
जॉनी 1000

1
हां, एक अच्छा प्रोग्रामर सी में ही कर सकता है। लेकिन एक बुरा प्रोग्रामर इसे पायथन में कर सकता है जितनी तेजी से एक अनुभवी प्रोग्रामर इसे सी में कर सकता है
पिथिकोस

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

16

कुछ अतिरिक्त विचार।

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

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

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

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

दूसरे कार्य के लिए, आपको पहले सोचना होगा कि आप वास्तव में क्या चाहते हैं। यदि आप मजबूत उत्पादन के लिए तैयार उपकरण चाहते हैं, तो C / C ++, Java, C # महान उम्मीदवार हैं। मैं स्काला और दोस्तों के साथ मिलकर पायथन को इस श्रेणी का दूसरा नागरिक मानता हूं। मैं एक लौ युद्ध शुरू नहीं करना चाहता, यह केवल मेरी राय है। लेकिन एक डेवलपर के रूप में 17 से अधिक वर्षों के बाद, मैं एक सख्त अनुबंध और मेरे ज्ञान को पसंद करता हूं, जो कुछ भी आप सोच सकते हैं उसे करने की स्वतंत्रता की तुलना में (जैसे कि यह बहुत गतिशील भाषाओं के साथ होता है)।

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

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


15

मैं अब तक दूसरों की कही गई बातों को जोड़ूंगा। इसका एक भी जवाब नहीं है कि एक भाषा दूसरे से बेहतर है।

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

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


2
"आर के पास एक बेहतर समुदाय है [...] सीखने के लिए" - मुझे लगता है कि यह अत्यधिक सीखने के प्रकार पर निर्भर करता है। आर में तंत्रिका नेटवर्क (मनमानी फीड-फॉरवर्ड आर्किटेक्चर, सीएनएन, आरएनएन) के साथ कितना चल रहा है?
मार्टिन थूमा

1
आर वास्तव में नहीं है कि "निम्न स्तर" आईएमओ। यह एक गतिशील भाषा भी है।
xji

12

एक चांदी की बुलेट भाषा नहीं है जिसका उपयोग डेटा से जुड़ी हर समस्या को हल करने के लिए किया जा सकता है। भाषा की पसंद समस्या के संदर्भ, डेटा के आकार और यदि आप किसी कार्यस्थल पर काम कर रहे हैं, तो आप उनके द्वारा उपयोग की जाने वाली चीजों से चिपके रहते हैं।

व्यक्तिगत रूप से मैं अपने विज़ुअलाइज़ेशन पुस्तकालयों और इंटरैक्टिव शैली के कारण पायथन की तुलना में अधिक बार आर का उपयोग करता हूं। लेकिन अगर मुझे अधिक प्रदर्शन या संरचित कोड की आवश्यकता होती है, तो मैं निश्चित रूप से पायथन का उपयोग करता हूं क्योंकि इसके पास कुछ सर्वश्रेष्ठ पुस्तकालय हैं जैसे कि SciKit-Learn, numpy, scipy आदि। मैं अपनी परियोजनाओं में R और Python दोनों का परस्पर उपयोग करता हूं।

इसलिए यदि आप डेटा साइंस का काम शुरू कर रहे हैं, तो मेरा सुझाव है कि आप दोनों को सीखें और यह मुश्किल नहीं है क्योंकि पाइथन भी पंडों के लिए आर को एक समान इंटरफ़ेस प्रदान करता है ।

यदि आपको बहुत बड़े डेटासेट से निपटना है, तो आप Java (Hadoop, Pig, Hbase etc) के साथ निर्मित इको-सिस्टम से बच नहीं सकते।


8

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


8

मेरे अनुभव में, उत्तर हाथ में परियोजना पर निर्भर करता है। शुद्ध शोध के लिए, मैं आर को दो कारणों से पसंद करता हूं: 1) पुस्तकालयों की व्यापक विविधता और 2) डेटा विज्ञान साहित्य के अधिकांश में आर नमूने शामिल हैं।

यदि परियोजना के लिए एक इंटरएक्टिव इंटरफ़ेस की आवश्यकता होती है, जो कि लेपर्सन द्वारा उपयोग किया जाता है, तो मैंने पाया है कि आर बहुत विवश है। चमकदार एक शानदार शुरुआत है, लेकिन यह अभी तक पर्याप्त लचीला नहीं है। इन मामलों में, मैं पायथन या js पर अपने R काम को पोर्ट करना शुरू करूँगा।


8

एक समस्या जो अन्य सभी उत्तरों को संबोधित करने में विफल रहती है, वह है लाइसेंसिंग

पूर्वोक्त अद्भुत आर पुस्तकालयों में से अधिकांश जीपीएल (जैसे ggplot2 , data.table ) हैं। यह आपको अपने सॉफ़्टवेयर को स्वामित्व रूप में वितरित करने से रोकता है

हालाँकि, उन पुस्तकालयों के कई उपयोग सॉफ्टवेयर के वितरण (उदाहरण के लिए ऑफ़लाइन मॉडल को प्रशिक्षित करने के लिए) का उपयोग नहीं करते हैं, जीपीएल स्वयं कंपनियों को उनका उपयोग करने से दूर कर सकता है। कम से कम मेरे अनुभव में।

दूसरी ओर, अजगर क्षेत्र में, अधिकांश पुस्तकालयों में बीएसडी या एमआईटी जैसे व्यापार के अनुकूल वितरण लाइसेंस हैं।

शिक्षाविदों में, लाइसेंसिंग मुद्दे सामान्य रूप से गैर-मुद्दे हैं।


7

प्रदान की गई टिप्पणियों में जोड़ने के लिए बहुत कुछ नहीं। केवल बात यह है कि डेटा विज्ञान के उद्देश्यों के लिए आर बनाम पायथन की तुलना में यह इन्फोग्राफिक है। http://blog.datacamp.com/r-or-python-for-data-analysis/


6

वास्तविक चुनौतियों में से एक, मुझे आर के साथ सामना करना पड़ा अलग-अलग संस्करणों के साथ संगत अलग-अलग पैकेज हैं .. आर के नवीनतम संस्करण के लिए काफी आर पैकेज उपलब्ध नहीं हैं .. और आर कुछ समय लाइब्रेरी के कारण त्रुटि देता है या पैकेज पुराने के लिए लिखा गया था संस्करण ..


3
मुझे यकीन नहीं है कि यह आर के साथ एक विशेष समस्या है, या यह इस सवाल का जवाब देता है कि पायथन और आर कैसे अलग हैं।
सीन ओवेन

5

मैंने आर की कोशिश नहीं की है (अच्छी तरह से, थोड़ा, लेकिन एक अच्छी तुलना करने के लिए पर्याप्त नहीं है)। हालाँकि, यहाँ कुछ पायथन ताकतें हैं:

  • बहुत सहज ज्ञान युक्त वाक्य रचना : टपल unpacking, element in a_list, for element in sequence, matrix_a * matrix_b(आव्यूह गुणन के लिए), ...
  • कई पुस्तकालय :
    • scipy : वैज्ञानिक संगणना; इसके कई हिस्से केवल बहुत तेज़ फोरट्रान कोड के लिए रैपर हैं
    • theano > Lasagne > nolearn : तंत्रिका नेटवर्क के लिए पुस्तकालय - उन्हें GPU पर प्रशिक्षित किया जा सकता है (nvidia, CUDA की आवश्यकता है) बिना किसी समायोजन के
    • sklearn : सामान्य शिक्षण एल्गोरिदम
  • अच्छा समुदाय :
  • आईपीथॉन नोटबुक
  • विविध :
    • 0-अनुक्रमित सरणियाँ ... मैंने उस त्रुटि को आर के साथ हर समय किया।
    • स्थापित पैकेज संरचनाएँ
    • अपने कोड के परीक्षण के लिए अच्छा समर्थन

3

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


2
आप उन सभी 3 चीजों को बहुत आसानी से R
Gaius

2

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

पायथन कोड

आयात पुस्तकालय

पंडों, सुपी जैसे अन्य आवश्यक पुस्तकालयों को आयात करें ...

स्केलेर आयात से linear_model आयात करता है

ट्रेन और परीक्षण डेटासेट लोड करें

फ़ीचर और प्रतिक्रिया चर (ओं) को पहचानें और मान संख्यात्मक और संख्यात्मक सरणियाँ होनी चाहिए

x_train = input_variables_values_training_datasets y_train = target_variables_values_training_datasets x_test = input_variables_values_test_datasets

लीनियर रिग्रेशन ऑब्जेक्ट बनाएं

लीनियर = लीनियर_मॉडल।लीनियरेशन ()

प्रशिक्षण सेट और चेक स्कोर का उपयोग करके मॉडल को प्रशिक्षित करें

रैखिक.फिट (x_train, y_train) रैखिक। score (x_train, y_train)

समीकरण गुणांक और अवरोधन

प्रिंट ('गुणांक: \ n', linear.coef_) प्रिंट ('अवरोधन: \ n', linear.intercept_)

भविष्यवाणी आउटपुट

भविष्यवाणी की गई = linear.predict (x_test) आर कोड

ट्रेन और परीक्षण डेटासेट लोड करें

फ़ीचर और प्रतिक्रिया चर (ओं) को पहचानें और मान संख्यात्मक और संख्यात्मक सरणियाँ होनी चाहिए

x_train <- input_variables_values_training_datasets y_train <- target_variables_values_training_datasets x_test <- input_variables_values_test_datasets x <- cbind (x_train, y_train)

प्रशिक्षण सेट और चेक स्कोर का उपयोग करके मॉडल को प्रशिक्षित करें

रैखिक <- lm (y_train ~।, डेटा = x) सारांश (रैखिक)

भविष्यवाणी आउटपुट

पूर्वानुमानित = भविष्यवाणी (रैखिक, x_test)


0

मुझे नहीं लगता है कि पायथन के पास GUI है जो इसे SPSS और SAS में बदल देता है। उन लोगों के साथ खेलना वास्तव में मजेदार है।


0

यहाँ छवि विवरण दर्ज करें

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


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