क्या जूलिया को सांख्यिकीय समुदाय में चिपके रहने की कोई उम्मीद है?


161

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

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

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

मेरे सवालों का पालन करें:

  1. जूलिया को आर को आंकड़ों की वास्तविक भाषा बनाने वाले एल्योर करने के लिए किन विशेषताओं की आवश्यकता है?

  2. जूलिया को कम्प्यूटेशनल-हेवी टास्क करने के लिए, C / ++ जैसी निम्न-स्तरीय भाषा सीखने के क्या फायदे और नुकसान हैं?


7
जूलिया इंकेटर ( incanter.org ) और अन्य समान परियोजनाओं से बेहतर कैसे है ?
वेन

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

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

1
@Whuber: मैंने सुझावों की सराहना की है और उन्हें लागू किया है। धन्यवाद!
क्रिस्टोफर अदन

2
@ trolle3000 मुझे नहीं लगता कि कोई भी दावा कर रहा है कि समांतरकरण इतना स्वचालित है। हालाँकि, जब (यदि) आपने किसी प्रोग्राम का कार्यात्मक संस्करण लिखा है, तो आप पहले से ही इसे समानांतर करने के लिए बहुत प्रयास करने का प्रयास कर चुके हैं, यही वजह है कि मैथमेटिका जैसे एप्लिकेशन अक्सर समानांतर रूप से, स्वचालित रूप से काफी प्रभावी ढंग से स्वचालित हो सकते हैं। यदि इसके बजाय आपने एक एल्गोरिथ्म को एक प्रक्रियात्मक तरीके से कोडित किया है, तो आमतौर पर इसे समानांतर करना अधिक कठिन होगा।
whuber

जवाबों:


96

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

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

मुझे लगता है कि वहां पहुंचना संभव है, लेकिन बहुत अधिक स्थापित भाषाएं (पायथन) हैं जो अभी भी प्रयोग करने योग्य सांख्यिकीय टूलकिट के साथ संघर्ष करती हैं।


क्या आपने वास्तव में बेंचमार्क कोड (या बेंचमार्क) को देखा है, यह जानने के लिए कि R तरीके खराब लिखे गए हैं? मैं खुद इसे देखने की कोशिश कर रहा हूं कि विभिन्न भाषाओं का उपयोग कैसे किया गया ...
जोश हेमन

10
@ जोशमन्न मैंने यह जानने के लिए पर्याप्त रूप से देखा है कि आर आर पूरे "धीमा-ईश" है। यह जरूरी नहीं कि हर बार हार जाए, और यह मौके पर अजगर को पानी से बाहर निकालता है, लेकिन उन सभी मामलों में "जो जीतता है" रिबन लगता है कि पायथन या आर प्रोग्रामर ने वास्तव में सी में अपना अधिकांश सामान लिखा है ।
17

5
बेंचमार्क कोड भयानक है । उनके R उदाहरणों के लिए 2000x गति लाभ संभव है। Stackoverflow.com/questions/9968578/… , विशेषकर टिप्पणियों को देखें ।
अरी बी। फ्रीडमैन

12
आप सही कह रहे हैं, @gsk। जैसे, pisum( github.com/JuliaLang/julia/blob/master/test/perf/perf.R पर ) 7.76 सेकंड लगते हैं, जबकि मुहावरेदार आर ( replicate(500, sum((1 / (10000:1))^2))[500]) का उपयोग करते हुए एक सरल पुन: लिखने में 0.137 सेकंड लगते हैं, जो पचास गुना गति से अधिक है।
whuber

2
एक कारण है कि आर ने एस-प्लस को अपनी अनुकूलता से हटा दिया। लोग कई पुराने कोड का उपयोग करने में सक्षम थे। पुराने भारी उपयोग किए गए कोड में कम कीड़े हैं। जूलिया जैसी नई चीजों के साथ, जो पुराने कोड के अनुकूल नहीं हैं, आपको एक "किलर ऐप" स्थिति की आवश्यकता है: ऐसा कुछ जो एक नए प्लेटफॉर्म पर जाने की सभी परेशानी को सही ठहराता है। यह Google की नई भाषा Go के समान है - अच्छा प्रयास करें, लेकिन मैं इसे क्यों सीखूंगा?
अक्कल

56

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

यह कहा, यह 5 साल हो जाएगा इससे पहले कि इस सवाल का उत्तर संभवतः दृष्टि में दिया जा सकता है। फिलहाल, जूलिया में एक सांख्यिकीय प्रोग्रामिंग प्रणाली के निम्नलिखित महत्वपूर्ण पहलुओं का अभाव है जो दिन-प्रतिदिन उपयोगकर्ताओं के लिए R के साथ प्रतिस्पर्धा कर सकता है:

(समय के साथ अद्यतन सूची ...)

  • वैकल्पिक रूप से आदेशित कारक प्रकार
  • सबसे सांख्यिकीय परीक्षण और सांख्यिकीय मॉडल
  • साक्षर प्रोग्रामिंग / पुन: पेश करने में सक्षम विश्लेषण का समर्थन
  • आर-क्लास, या यहां तक ​​कि मटलब-क्लास प्लॉटिंग

आर, जूलिया और एड-ऑन स्टैटस पैकेज के साथ प्रतिस्पर्धा करने के लिए पर्याप्त स्वच्छ और पर्याप्त होना चाहिए जो कि स्मार्ट नॉन-प्रोग्रामर कहते हैं, सामाजिक विज्ञान में स्नातक छात्रों को उचित रूप से उपयोग कर सकते हैं। वहाँ पाने के लिए बहुत काम की एक बिल्ली है। शायद यह होगा, शायद यह फिजूल होगा, शायद कुछ और (आर 3.0?) इसे सुपरसीड करेगा।

अपडेट करें:

जूलिया अब लापता डेटा / एनए, मॉड्यूल / नामस्थान, formulaप्रकार और model.matrixबुनियादी ढांचे, प्लॉटिंग (सॉर्टा), डेटाबेस समर्थन (लेकिन अभी तक डेटाफ़्रेम के लिए नहीं) और कीवर्ड द्वारा तर्क देने के साथ डेटाफ़्रेम का समर्थन करता है। अब एक आईडीई (जूलिया स्टूडियो), विंडोज समर्थन, कुछ सांख्यिकीय परीक्षण और कुछ दिनांक / समय समर्थन भी है।


literate programming/reproduce-able analysis support-> IJulia देखें ।
पियोट्र मिगडाल

1
IPython / Jupyter नोटबुक इकोसिस्टम के लिए iJulia कर्नेल जोड़ें।
Thecity2

2
जूलिया स्टूडियो को चरणबद्ध किया जा रहा है, और जूनो अब आईडीई है
एंटनी

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

5 साल बीत गए होंगे। क्या हम अभी तक, @ हैरलन हैं?
StasK

35

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

डेटा.फ्रेम अंतःक्रियात्मक रूप से काम करने के लिए बहुत ही क्लिंकी है - उदाहरण के लिए, यह पूरे डेटा संरचना को आमंत्रण पर प्रिंट करता है, $ सिंटैक्स प्रोग्राम के साथ काम करने के लिए कठिन है, क्वेरी के लिए अनावश्यक स्व संदर्भ (यानी DF[DF$x < 10]), जुड़ाव की आवश्यकता होती है और एकत्रीकरण अजीब होते हैं। Data.table इनमें से अधिकांश झुंझलाहट को हल करता है, लेकिन जैसा कि यह कोर कार्यान्वयन का हिस्सा नहीं है, अधिकांश R कोड इसकी सुविधाओं का उपयोग नहीं करते हैं।

अजगर में पंडित एक ही दोष से पीड़ित हैं।

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

मेरा मानना ​​है कि अगर जूलिया को डेटा विश्लेषण वातावरण के रूप में सफल होना है, तो प्रयास उपयोगकर्ता के अनुकूल टेबल डेटा प्रकार पर एसक्यूएल ऑपरेटरों (एसक्यूएल सिंटैक्स के सामान के बिना) को लागू करने के लिए समर्पित होना चाहिए।


1
+ 1 - एक दिलचस्प बिंदु, बहुत सोच समझकर बताया गया। हमारे समुदाय में आपका स्वागत है!
whuber

4
नाइट-पिकी होने के लिए, बड़े पंडों डेटाफ्रेम वास्तव में आह्वान होने पर अपनी सभी सामग्री को प्रिंट नहीं करते हैं, जैसा कि आर में होता है। वे कॉलम हेडर को शून्य / गैर-शून्य मानों की गिनती के साथ प्रदर्शित करने के लिए स्विच करते हैं। इसके अलावा, जब मैं सहमत हूं कि वाक्यविन्यास आदर्श नहीं है, तो स्कोपिंग के मुद्दों को समझने-समझने के लिए स्व-संदर्भ को समाप्त करना कठिन हो जाता है। यह वर्डियर है, लेकिन यह नामस्थान टकरावों के लिए भी प्रतिरोधी है यदि किसी DataFrame में रनटाइम पर अतिरिक्त कॉलम हैं जिनसे आपको उम्मीद नहीं थी।
17

29

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

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

यह सौम्य लग सकता है, लेकिन MATLAB के साथ आँकड़े करने की कोशिश करने वाले हर कोई जानता है कि यह वास्तव में दर्द होता है।

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


4
(+1) अच्छी बात। कुछ और विचार: data.frameपायथन में समान सुविधाओं की कमी ने मुझे लंबे समय तक परेशान किया है, लेकिन अब पंडों ने इस मुद्दे को सुलझा लिया है। फॉर्मूला स्टैटमॉडल के कुछ नियोजित एक्सटेंशनों में से एक है (खैर, हम जानते हैं कि कभी-कभी आर में फॉर्मूला इंटरफ़ेस से बचना बेहतर होता है)। जूलिया के लिए एक डेटा.फ्रेम प्रस्ताव है (पायथन की तुलना में बहुत जल्दी!), (...)
chl

5
मुझे लगता है कि @mbq में C. के बारे में भी एक बिंदु है। यदि मुझे परिमाण के समान क्रम पर C / C ++ की गति की आवश्यकता है ... मैं R / के साथ C / C ++ का उपयोग कर सकता हूं
Fomite

4
@EpiGrad, हाँ, आप C / C ++ लिख सकते हैं और R के साथ सफाई से इंटरफ़ेस कर सकते हैं। लेकिन यह एक कमजोरी है, भाषा की ताकत नहीं। जूलिया के साथ, अंत उपयोगकर्ताओं को गति प्राप्त करने के लिए सी लिखने की आवश्यकता नहीं होगी।
हरलन

2
@ हरलन यह केवल एक कमजोरी है यदि आप पहले से ही जूलिया और सी दोनों को जानते हैं। मैं सी में खर्च किए गए समय पर जोर देना चाहता हूं <एक नई भाषा सीखने और खरोंच से सब कुछ फिर से लागू करने में समय बिताया ।
फोमाइट

9
@ हरलन और कुंद होने के लिए, उन लोगों को जूलिया में अपने सामान को फिर से लिखना नहीं होगा। सांख्यिकी पैकेज के रूप में, प्रोग्रामिंग भाषा उनका उपयोग मामला नहीं है
फोमाइट

26

मैं जूलिया को मतलाब की जगह ले सकता हूं, जो मानवता के लिए बहुत बड़ी सेवा होगी।

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

अभी, आप Mac, Windows या Linux के लिए R का बाइनरी डाउनलोड कर सकते हैं। यह सांख्यिकीय विधियों के एक बड़े चयन के साथ बॉक्स से बाहर काम करता है। यदि आप एक पैकेज डाउनलोड करना चाहते हैं, तो यह एक साधारण कमांड या माउस क्लिक है। यह सिर्फ काम करता है।

मैं जूलिया डाउनलोड करने गया और यह सरल नहीं है। यहां तक ​​कि अगर आप द्विआधारी डाउनलोड करते हैं, तो आपको उचित लाइब्रेरी प्राप्त करने के लिए गैफ़रान स्थापित करना होगा। मैंने स्रोत डाउनलोड किया और करने की कोशिश की makeऔर यह वास्तव में उपयोगी संदेश के साथ विफल रहा। मेरे पास कंप्यूटर विज्ञान में एक स्नातक और एक स्नातक की डिग्री है, इसलिए मैं इधर उधर हो सकता था और काम कर सकता था। (मैं नहीं हूँ।) जो स्टेटिस्टिशियन ऐसा करेगा?

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

संपादित करें: मैं जूलिया के साथ बेवकूफ बनाना चाहता था - यह रोमांचक लग रहा है। दो समस्याएं:

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

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


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

7
आपको यह जानने में रुचि हो सकती है, @Christopher, कि R वास्तव में एक पैकेज (S, तब S-Plus) का एक स्वतंत्र रूप से विकसित क्लोन है जो एक (मामूली) व्यावसायिक सफलता थी और दस साल पहले विकास के तहत थी। इसने इसे एक महत्वपूर्ण शुरुआत दी कि जूलिया (और ऐसे अन्य प्रयास) कभी नहीं हुए।
whuber

3
@ChristopherAden: मैं मानता हूं कि जूलिया अभी युवा है। लेकिन मैं इस बात से असहमत हूं कि "'CJAN' निश्चित रूप से बड़े पैमाने पर अपनाने के लिए अच्छा होगा": यह एक परम आवश्यकता है। एकमात्र उपकरण जिसके बारे में मैं सोच सकता हूं कि सीआरएएन जैसी बुनियादी संरचना अत्यधिक विशिष्ट नहीं है - जेएजीएस की तरह। लेकिन जूलिया, आर की तरह, सामान्य उद्देश्य है।
वेन

10
जिस दिन ओपन सोर्स लैंग्वेज MATLAB की जगह लेगा वह इंजीनियरिंग की दुनिया के लिए सबसे अच्छा दिन होगा।
रॉयई

9
"मैं जूलिया को मतलाब की जगह देख सकता हूं, जो मानवता के लिए बहुत बड़ी सेवा होगी।" मैं और सहमत नहीं हो सकता।
davidav

24

जूलिया भाषा बहुत नई है; स्पॉट लाइट में समय को हफ्तों में मापा जा सकता है (भले ही इसका विकास समय निश्चित रूप से वर्षों में मापा जा सकता है)। अब स्पॉट लाइट में वे सप्ताह बहुत ही रोमांचक सप्ताह थे --- उदाहरण के लिए देखें स्टैनफोर्ड में हाल ही में हुई बातचीत "जहां यह अभी शुरू हुआ था" --- अमल में लाना।

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


16
क्योंकि मैंने Rcpp के माध्यम से जो देखा है, मैं जूलिया से और भी अधिक प्रभावित हूं --- एमसीएमसी में सरल लूपिंग के लिए लगभग 50, 60, 70 गुना बढ़ जाती है और "डीजेनरेट" के लिए कई सौ गुना, जैसे कि मूल रूप से समान हैं। Rcpp मिल गया! लेकिन मुझे यह भी पता है कि Rcpp के साथ मुझे अभी भी 3700 CRAN पैकेज --- के साथ-साथ अनगिनत C ++ लाइब्रेरीज़ तक भी पहुंच प्राप्त है --- जबकि जूलिया के पास अभी लगभग कुछ भी नहीं है। उस ने कहा, जूलिया का वादा बहुत बड़ा है। लेकिन शायद एक "तब" के साथ-साथ एक "अब" भी है। समय बताएगा।
डिर्क एडल्डबुलेटेल

2
और इंकान्टर को मत भूलना, जो क्लोजर के आधार पर एक सांख्यिकीय वातावरण बनने वाला है। जूलिया उससे बेहतर कैसे है?
वेन

2
@Wayne, चलो यहाँ पानी नहीं कीचड़। उसके लिए एक नया प्रश्न खोलें (शायद एक जो कई भाषाओं के बीच तुलना के लिए पूछता है)
n

2
@ naught011: मैं बस डर्क की बात को प्रतिध्वनित कर रहा हूं कि क्लोजर महीने का स्वाद था, फिर विशेष रूप से इंकान्टर, अब जूलिया। मुझे नहीं लगता कि जूलिया या इंकेटर (या क्लोजर) सामान्यीकृत सांख्यिकीय प्लेटफ़ॉर्म होने का एक मौका है।
वेन

2
मुझे कोई पता नहीं है, लेकिन मैं ख़ुशी से आर पक्ष को अपडेट करता हूं: सीआरएएन पर 6400 से अधिक पैकेजों में से, और अब आरसीपी का उपयोग करने वालों में से 350 से अधिक। फिर भी मेरे लिए काम करता है। जूलिया लोग सक्रिय लगते हैं, और खुश --- और एक विकल्प होना एक अच्छी बात है। सभी समस्याओं के लिए कोई एक भाषा नहीं है: क्षमा करें, अजगर
डर्क एडल्डबुलेटेल

19

ब्रूस टेट यहाँ, सेवन वीक में सात भाषाओं के लेखक। यहाँ कुछ विचार हैं। मैं फॉलोअप बुक के लिए जूलिया पर काम कर रही हूं। निम्नलिखित कुछ हफ्तों के खेल के बाद सिर्फ मेरी राय है।

खेलने के लिए दो मूलभूत बल हैं। सबसे पहले, सभी भाषाओं में एक जीवन काल होता है। किसी दिन आर को बदल दिया जाएगा। हम नहीं जानते कि कब। नई भाषाओं का विकास बहुत कठिन समय है। जब एक नई भाषा विकसित होती है, तो यह आमतौर पर कुछ भारी दर्द बिंदु को हल करती है।

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

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

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

दूसरी विशेषता जो होने में मदद करेगी वह वास्तव में मैक्रोज़ है। भाषा की गति अभी तीव्र है। मैक्रोज़ आपको बड़े, क्लीनर बिल्डिंग ब्लॉकों के साथ निर्माण करते हैं। पुस्तकालयों को देखना दिलचस्प है, लेकिन पूरी तस्वीर नहीं बताती है। आपको पुस्तकालयों के विकास को देखने की जरूरत है। जूलिया के प्रक्षेपवक्र यहाँ पर बहुत अधिक है।

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

तो मेरे लिए, जूलिया या ऐसा कुछ बिल्कुल आर के दिन को बदल देगा। यह समय की बात है।


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

15

जब भी मैं एक नई भाषा देखता हूं, मैं खुद से पूछता हूं कि मौजूदा भाषा को बदले क्यों नहीं सुधारा जा सकता।

अजगर के बड़े फायदे हैं

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

आर, जूलिया, आदि से आगे निकलने के लिए, पायथन का उपयोग कर सकता है

  • प्रतिबंधित अजगर के लिए सिर्फ-इन-टाइम संकलन का विकास आपको एक मशीन पर और अधिक गति देने के लिए (लेकिन अगर आप विलंबता खड़े कर सकते हैं तो मैप्रेड्यूस अभी भी बेहतर है)
  • एक समृद्ध सांख्यिकीय पुस्तकालय

3
यह सच हो सकता है, लेकिन एक बहुत ही आकस्मिक उपयोगकर्ता के लिए, पायथन की भाषा का डिज़ाइन मैटलैब, या जूलिया जैसी किसी चीज़ की तुलना में उपयोग करने के लिए थोड़ा कठिन हो सकता है, जिसमें एक और भी गणित जैसा सिंटैक्स होता है। आप y = 3x+2जूलिया में कह सकते हैं और यह काम करता है!
हरलन

6
यह मज़ेदार है: जब मैंने पहली बार पायथन को लगभग 10+ साल पहले देखा था, तो मुझे ठीक उसी तरह की प्रतिक्रिया थी (इसकी आवश्यकता क्यों है? क्यों न पहले से जो कुछ है उसे बेहतर बनाया जाए? क्यों विचित्र सिंटैक्टिक quirks का एक नया सेट सीखें, कक्षाओं के नाम, विधियाँ? , और प्रक्रियाओं, और बाकी सभी?)। :-)
whuber

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

3
@NeilG R की सफलता का ध्यान रखें कि यह सिर्फ सांख्यिकीविदों द्वारा उपयोग नहीं किया जाता है। यह उन लोगों द्वारा उपयोग किया जाता है जो आंकड़े करते हैं । और सामाजिक वैज्ञानिक, चिकित्सक और प्रथम वर्ष के विज्ञान स्नातक छात्र बिल्कुल आकस्मिक उपयोगकर्ता हैं।
फोमाइट

6
मुझे लगता है कि (CrossValidated सदस्य) जॉन डी कुक की ब्लॉग पोस्ट इस पर है: मैं गणित और कोड की समस्याओं को गणित की भाषा में कोड करने की कोशिश करने के बजाय सामान्य उद्देश्य की भाषा में बहुत गणित करता हूं। यदि जूलिया समुदाय इसे ध्यान में रख सकता है, तो एक अच्छा मौका है कि भाषा विश्लेषणात्मक प्रोग्रामिंग के लिए छड़ी करेगी (आँकड़े उस का केवल एक हिस्सा है)। देखें johndcook.com/blog/2012/04/02/why-scipy
जोश हेमन

9

जूलिया बहुत जल्द आर पर कब्जा नहीं करेगी। Microsoft R खुला देखें।

https://mran.revolutionanalytics.com/open/

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


8

निम्नलिखित शायद एक जवाब के लायक नहीं है, लेकिन किसी और की प्रतिक्रिया के लिए एक टिप्पणी के रूप में दफन किया जाना बहुत महत्वपूर्ण है ...

मैंने मेमोरी खपत के बारे में बहुत कुछ नहीं सुना है, बस गति। आर-पूरा शब्दार्थ पास-पास-मूल्य होना दर्दनाक हो सकता है, और यह भाषा की एक आलोचना है (जो पहले से मौजूद कई महान पैकेजों से एक अलग मुद्दा है)। अच्छा मेमोरी मैनेजमेंट महत्वपूर्ण है, क्योंकि आउट-ऑफ-कोर प्रोसेसिंग (उदाहरण के लिए मैमोरी मेमोरी मैप्ड एरेज़ या पाइटेबल्स या रिवोल्यूशन एनालिटिक्स एनालिटिक्स xdf फॉर्मेट ) से निपटने के तरीके हैं)। जबकि PyPy का JIT कंपाइलर कुछ हड़ताली Python बेंचमार्क के लिए अनुमति देता है, मेमोरी की खपत काफी अधिक हो सकती है। तो, क्या किसी के पास जूलिया और मेमोरी उपयोग का अनुभव है? लगता है कि विंडोज "अल्फा" संस्करण पर मेमोरी लीक हैं जो कि कोई संदेह नहीं होगा, और मैं अभी भी खुद को भाषा के साथ खेलने के लिए लिनक्स बॉक्स तक पहुंच का इंतजार कर रहा हूं।


सही है, लेकिन आर (संदर्भ कक्षाएं, एक के लिए) में पास-दर-संदर्भ का उपयोग करने के तरीके हैं।
अरी बी। फ्रीडमैन

1
और आर वास्तव में सख्ती से पास-बाय-वैल्यू नहीं है। आलसी मूल्यांकन और कुछ चतुर अनुकूलन का अर्थ है कि अक्सर डेटा की नकल नहीं की जाती जब तक कि उसे होना न हो।
अरी बी। फ्रीडमैन

8

मुझे लगता है कि यह संभावना नहीं है कि जूलिया कभी भी आर का स्थान ले लेगी, पहले बताए गए कारणों से। जूलिया एक Matlab प्रतिस्थापन है, एक R प्रतिस्थापन नहीं; उनके अलग-अलग लक्ष्य हैं। जूलिया के पास पूरी तरह से फेल्ड आउट सांख्यिकी लाइब्रेरी होने के बाद भी, कोई भी इसमें सांख्यिकी वर्ग को इंट्रो नहीं सिखाएगा।

हालाँकि, एक ऐसा क्षेत्र जिसमें यह अविश्वसनीय हो सकता है, एक गति-अनुकूलित प्रोग्रामिंग भाषा है जो C / C ++ से कम दर्दनाक है। यदि इसे R (Rcpp की शैली में) से मूल रूप से जोड़ा गया था, तो यह कोड के स्पीड-क्रिटिकल सेगमेंट लिखने में एक टन का उपयोग करेगा। दुर्भाग्य से वर्तमान में ऐसा कोई लिंक मौजूद नहीं है:

https://stackoverflow.com/questions/9965747/linking-r-and-julia


लेकिन अब एक है: comments.gmane.org/gmane.comp.lang.julia.devel/15153 did'nt कोशिश करो (अभी तक)।
kjetil b halvorsen

8

मैं जूलिया नौसिखिया हूं, और आर सक्षम हूं। मुझे अब तक जूलिया दिलचस्प लगने के कारण प्रदर्शन और संगतता उन्मुख हैं।

GPU उपकरण। मैं एक सांख्यिकीय आवेदन के लिए CUSPARSE का उपयोग करना चाहूंगा। CRAN परिणाम बताते हैं कि वहाँ बहुत कुछ नहीं है। जूलिया के पास बाइंडिंग उपलब्ध है जो अब तक सुचारू रूप से काम करती है।

using CUSPARSE
N = 1000
M = 1000
hA = sprand(N, M, .01)
hA = hA' * hA
dA = CudaSparseMatrixCSR(hA)
dC = CUSPARSE.csric02(dA, 'O') #incomplete Cholesky decomp
hC = CUSPARSE.to_host(dC)

एचपीसी उपकरण। एक एक क्लस्टर का उपयोग कई कम्प्यूट नोड्स के साथ अंतःक्रियात्मक रूप से कर सकता है।

nnodes = 2
ncores = 12    #ask for all cores on the nodes we control
procs = addprocs(SlurmManager(nnodes*ncores), partition="tesla", nodes=nnodes)
for worker in procs
    println(remotecall_fetch(readall, worker, `hostname`))
end

अजगर की अनुकूलता। अजगर पारिस्थितिक तंत्र की पहुंच है। उदाहरण के लिए यह पता लगाना सरल था कि मस्तिष्क इमेजिंग डेटा कैसे पढ़ें:

import PyCall
@pyimport nibabel

fp = "foo_BOLD.nii.gz"
res = nibabel.load(fp)
data = res[:get_data]();

C अनुकूलता। निम्नलिखित सी मानक पुस्तकालय का उपयोग कर एक यादृच्छिक पूर्णांक बनाता है।

ccall( (:rand, "libc"), Int32, ())

स्पीड। मैंने सोचा कि मैं कैसे डिस्ट्रीब्यूशन.ज्ल पैकेज आर के rnorm के खिलाफ सुगंधित करता हूं - जो मुझे लगता है कि अनुकूलित है।

julia> F = Normal(3,1)
Distributions.Normal(μ=3.0, σ=1.0)

julia> @elapsed rand(F, 1000000)
0.03422067

आर में:

> system.time(rnorm(1000000, mean=3, sd=1))
   user  system elapsed 
  0.262   0.003   0.266 

1
@ नाइकॉक्स, क्योंकि पहले से ही एक दर्जन से अधिक उत्तर हैं, मैंने सोचा कि एक वैकल्पिक कोण को उजागर करना दिलचस्प हो सकता है। इसके अलावा, मैं एक प्रारंभिक मसौदा गलती :) पोस्ट
conjectures

1
सवाल यह था कि जूलिया सांख्यिकीय समुदाय में क्यों चिपकी रह सकती है, मेरे जवाब केंद्रों में एचपीसी + जीपीयू के लिए स्पष्ट रूप से अच्छा समर्थन है, जो कि गणनात्मक गहन काम वाले कई लोगों को दिलचस्प लग सकता है।
अनुमान

7

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

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

(२) यह संख्यात्मक विधियों और सिमुलेशन में अनुसंधान करना शुरू कर देता है। MIT जूलिया के पीछे अपना वजन फेंक रहा है, और अनुसंधान समुदाय सुनो MIT के लिए। संख्यात्मक सिमुलेशन और नए संख्यात्मक तरीके बीमार-परिभाषित समस्याएं हैं जिनमें कोई लाइब्रेरी नहीं है। यह वह जगह है जहाँ जूलिया एक भाषा के रूप में चमकता है; यदि कोई पुस्तकालय उपलब्ध नहीं है, तो किसी अन्य भाषा की तुलना में जूलिया में तेजी से गुणवत्ता कोड लिखना बहुत आसान है। यह एक संख्यात्मक / अनुकार भाषा होगी जो गणितज्ञों द्वारा गणितज्ञों के लिए लिखी गई है (आर के समान ध्वनि अभी तक)?

(3) मशीन लर्निंग में एक और सफलता होती है जो जूलिया को बढ़त देती है। यह एक वाइल्डकार्ड का एक सा है जो शायद नहीं होता है। TensorFlow महान है, लेकिन इसे हैक करना बेहद कठिन है। पायथन ने पहले ही दरारें दिखाना शुरू कर दिया है और टेन्सरफ्लो ने स्विफ्ट को अपनाना शुरू कर दिया है (जूलिया को एक सम्मानजनक उल्लेख मिल रहा है)। यदि एक और मशीन सीखने की सफलता होती है, तो इसे जूलिया पैकेज में लागू करना और हैक करना बहुत आसान होगा जैसे कि फ्लक्स.ज्ल।

(४) जूलिया धीरे-धीरे आर को पकड़ने लगती है, जिसमें थोड़ा समय लगेगा। MATLAB में आँकड़े करना दर्दनाक है, लेकिन Juila पहले से ही MATLAB से आगे है। तथ्य यह है, आर वर्कफ़्लोज़ को आसानी से जूलिया में अनुवाद किया जा सकता है। केवल वास्तविक लाभ आर है तथ्य यह है कि सांख्यिकीविदों द्वारा सांख्यिकीविदों द्वारा लिखे गए कई पैकेज हैं। यह प्रक्रिया हालांकि, जूलिया में करना आसान है। अंतर यह है कि जूलिया सभी तरह से तेज है और आपको प्रदर्शन के लिए दूसरी भाषा का उपयोग नहीं करना है (अधिक "गंभीर" आर पैकेज सी जैसी भाषाओं में लिखे गए हैं)। R के साथ समस्या यह है कि R में लिखे पैकेज डेटा के बड़े सेट को संभालने के लिए बहुत धीमे हैं। एकमात्र विकल्प संकुल को जूलिया की तुलना में R में एक धीमी प्रक्रिया में विकास करने वाली दूसरी भाषा में अनुवाद करना है।


2
मतलब को बदलने के बारे में उद्धरण जो आपको याद है , इस धागे से है । :)
डगल

5

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

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


हाय Mervyn, और Stats.SE में आपका स्वागत है! जूलिया ने इस पोस्ट को बनाने के बाद से उस समय में कुछ महत्वपूर्ण सुधार किए हैं (लगभग एक साल पहले!)। डगलस बेट्स ने अपने कुछ GLM (शायद GLMM?) कोड को जूलिया dmbates.blogspot.com/2012/04/r-programmer-looks-at-julia.html ) में पोर्ट किया , और मुख्य गालूब पेज ने अतीत में कई अपडेट देखे हैं साल। मेरा जूलिया इस प्रकार दूर है (मैंने पिछले साल से इसका इस्तेमाल किया है और बंद कर दिया है) यह गति के लिए एक अच्छा उपकरण है, जिसका उपयोग मैं कुछ कच्चे एमसीएमसी के लिए करता हूं, लेकिन इसने मेरे टूलकिन में अभी तक आर को प्रतिस्थापित नहीं किया है। तेजी से प्राप्त करने के लिए या तो आर का इंतजार नहीं कर सकता, या जूलिया अधिक व्यापक हो सकता है!
क्रिस्टोफर एडन

डग ने अभी तक GLMMs को पोर्ट नहीं किया है। अगर कोई इस बात में मदद करना चाहता है कि मुझे यकीन है कि वह खुश होगा ...
बेन बोल्कर

4

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

आर में कई पैकेज विरासत भाषाओं (सी, फोरट्रान या सी ++) में लिखी गई दिनचर्या पर निर्भर करते हैं। कुछ मामलों में संकलित दिनचर्या आर के बाहर विकसित की गई और बाद में आर लाइब्रेरी पैकेज के लिए आधार के रूप में उपयोग की गई। दूसरों में रूटीन को पहले आर में लागू किया गया था और फिर प्रदर्शन को अभाव पाए जाने पर संकलित भाषा में अनुवाद किया गया। जूलिया आकर्षक होगी यदि इसे समान दिनचर्या को लागू करने के लिए इस्तेमाल किया जा सकता है। NA के लिए निम्न-स्तरीय समर्थन को डिजाइन करने का एक अवसर है जो NA को संकलित करता है जो संकलित कोड के साथ R का उपयोग करते समय हमारे पास अब क्या है।

आर पुस्तकालयों की भारी संख्या कई उपयोगकर्ताओं के प्रयासों का प्रतिनिधित्व करती है। यह संभव था क्योंकि आर ने ऐसी क्षमताएं प्रदान कीं जो अन्यथा उपलब्ध नहीं थीं / सस्ती थीं। यदि जूलिया का व्यापक रूप से उपयोग किया जाना है, तो इसे उन उपयोगकर्ताओं के एक समूह की आवश्यकता होती है जो यह पाते हैं कि वे ऐसा करते हैं जो उन्हें उन विकल्पों की तुलना में बहुत बेहतर चाहिए जो बहुत ही बुनियादी चीजों (जैसे, ग्राफिक्स, तिथि कक्षाएं, एनए, आदि) की आपूर्ति करने के लिए आवश्यक प्रयास के लायक हैं। ) मौजूदा भाषाओं से उपलब्ध है।


4

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


3

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


2

जूलिया को संदेह के बिना एक आँकड़े बनने की हर संभावना है कि बिजली-उपयोगकर्ता सपना सच हो, उदाहरण के लिए एसएएस ले लो, यह सी में लिखे गए कई गद्यों में शक्ति निहित है - जूलिया क्या कर सकता है आप स्रोत कोड के साथ procs दे सकते हैं, जैसे मैट्रिसेस एसएएस / आईएमएल के साथ डेटा टाइप डिस्पेंसिंग में बनाया गया। मुझे इस बात में कोई संदेह नहीं है कि सांख्यिकीविद जूलिया के लिए झुंड बना लेंगे, क्योंकि उन्हें सिर्फ इस बात पर ध्यान होगा कि यह पिल्ला क्या कर सकता है।


1
आपका स्वागत है Stats.SE, Jimbo में। मैं आपकी बात से असहमत हूं। मुझे लगता है कि हमने देखा है कि जूलिया क्या कर पा रही है, लेकिन इस बिंदु पर समस्या यह है कि इसके लिए लगभग कई डोमेन-विशिष्ट पैकेज नहीं हैं क्योंकि आर। आर। में खुले स्रोत के आंकड़ों में सर्वोच्च शासन करना जारी रहेगा जब तक शोधकर्ता R ब्रह्मांड में कई पैकेजों का उपयोग करने के लिए अधिक लाभ देखते हैं। कम से कम मेरा तो यही है।
क्रिस्टोफर अदन

2

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

जैसा कि मैंने अभी देखा (आर के पीछे भारी उपयोग के वर्षों, और अभी जूलिया मैनुअल पढ़ना समाप्त), आर के संबंध में जूलिया की मुख्य कमियां संरचनात्मक विरासत (यह जानबूझकर) के लिए कोई समर्थन नहीं है। जूलिया का प्रकार प्रणाली एस 4 की तुलना में कम महत्वाकांक्षी है; यह कई प्रेषण और कई विरासत का भी समर्थन करता है, लेकिन एक पकड़ के साथ - ठोस कक्षाओं का केवल एक स्तर है। दूसरी ओर, मैं शायद ही कभी आर श्रेणी के पदानुक्रमों को 3 स्तरों से अधिक गहरा देखता हूं।

समय बताएगा, लेकिन यह अधिकांश आर उपयोगकर्ताओं की तुलना में जल्द ही होगा :)


2
आप मैक्रोज़ के बारे में एक अच्छी बात करते हैं: दशकों बाद लोग अब भी कम आंकते हैं कि लिस्प वास्तव में कितना शक्तिशाली है। हालाँकि, जैसा कि आप बिंदु # 1 में हैं, यह भाषा मूल रूप से एक Matlab प्रतिस्थापन है, R प्रतिस्थापन नहीं। मुझे लगता है कि आप इस तथ्य को भी नजरअंदाज कर देते हैं कि यह भाषा प्लस लाइब्रेरी (पैकेज) है जिसका लोग उपयोग करते हैं और जूलिया के पास 1% भी नहीं है जो वहां की जरूरत है।
वेन

2
@Wayne, मैं कुछ भी अनदेखा नहीं करता, ओपी भविष्य के बारे में था और अब जो नहीं है उसके बारे में। 5 वर्षों में, हम जूलिया में आँकड़ों के लिए कई और पुस्तकालय देख सकते हैं, जैसे कि अब आर। और इसके लिए हैं, क्योंकि जूलिया के पास एक बेहतर भाषा होने का एक अच्छा मौका है।
विट्ठकॉ १

यदि जूलिया वास्तव में MATLAB प्रतिस्थापन हो जाता है, तो इंजीनियरिंग और सांख्यिकी के लिए एक ही भाषा का उपयोग करने के लिए इसके बड़े लाभ होंगे! अतिव्यापी क्षेत्र (जैसे समय श्रृंखला) विशाल हैं।
kjetil b halvorsen

1

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


0

यह बड़े डेटासेट पर किसी भी फ़ंक्शन को लागू करने में सक्षम होना चाहिए जो उपयोगकर्ता के लिए पारदर्शी रूप से मेमोरी पर फिट नहीं होता है।
इसमें कम से कम चलने वाले मिश्रित प्रभाव वाले मॉडल, उत्तरजीविता मॉडल या डेटा पर एमसीएमसी शामिल हैं जो डिस्क पर नहीं बल्कि मेमोरी पर फिट होते हैं। और यदि संभव हो तो कई कंप्यूटरों पर वितरित डेटासेट पर।

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