2011-09-25 7 views
6

मेरे पास एक रेल ऐप है जो Heroku पर होस्ट किया गया है जिसके लिए मैं कुछ लाइव डेटा विश्लेषण को शामिल करना चाहता हूं। आदर्श रूप से, मुझे एक सामान्यीकृत बढ़ाया रिग्रेशन मॉडल चलाने का एक तरीका पता लगाना अच्छा लगेगा, जो मुझे पता है कि दोनों आर (http://cran.r-project.org/web/packages/gbm/index.html) में उपलब्ध है। और स्टाटा (http://www.stata-journal.com/article.html?article=st0087)। मैं परिणामस्वरूप जीबीएम पेड़ को सहेजना चाहता हूं और फिर, मेरे ऐप के भीतर, उपयोगकर्ता इनपुट के आधार पर नए परिणामों की भविष्यवाणी करने के लिए इसका उपयोग करें।एक हेरोकू रेल ऐप के लिए डेटा खनन/सांख्यिकीय विश्लेषण विकल्प?

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

1) Heroku समर्थन एक गहरे लाल रंग का रत्न में आर पुस्तकालय vendoring सुझाव:

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

2) यहां एक और धागा (http://stackoverflow.com/questions/6495232/statistic-engine-that-work-with-heroku) क्लाउडनबर्स का उल्लेख किया है, लेकिन यह सेवा से कॉल करना संभव नहीं लगता है रेल ऐप

3) उनके केस स्टडीज में से एक में, हेरोोकू ने फ्लाइटकास्टर का उल्लेख किया है, जो क्लोजर, हैडोप और ईसी 2 का उपयोग उनके मशीन लर्निंग (http://www.infoq.com/articles/flightcaster-clojure-rails) के लिए करता है। मैंने देखा कि हेरोोक क्लोजर का समर्थन करता है, लेकिन क्या मेरे रेल ऐप में इसे एकीकृत करने के लिए कोई तरीका है (या अधिक विशेष रूप से इंकेंटर)?

यदि आपके कोई विचार हैं तो कृपया मुझे बताएं।

उत्तर

6

मैं इसे आर परिप्रेक्ष्य से उत्तर दूंगा।)

1) आर के साथ Interfacing, जहां यह

2 चल रहा है की परवाह किए बिना Heroku, जहां चुनौतियों की एक विशेष सेट देखते हैं से ऐसा करने से: आम तौर पर, आप दो समस्याओं का सामना करने जा रहे हैं।

इनमें से पहला करने के लिए कुछ सामान्य दृष्टिकोण हैं - आप आर (rsruby, rinruby, आदि) के लिए एक बाध्यकारी उपयोग कर सकते हैं, तो आप (जैसे गहरे लाल रंग का R -e "RCODEHERE" से) आर के लिए बाहर शेल कर सकते हैं, आप कर सकते हैं एक webservice के रूप में आर को एक्सेस करें (Rook पैकेज देखें, और विशेष रूप से https://github.com/jeffreyhorner/rRack/blob/master/Rook/inst/exampleApps/RJSONIO.R जैसे कुछ), या आप rserve जैसे कुछ का उपयोग करके मैन्युअल रूप से आर तक पहुंच सकते हैं।

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

अधिक महत्वपूर्ण उपयोग के लिए, मैं किसी भी बाइंडिंग का उपयोग करने का सुझाव देना चाहता हूं, या किसी अन्य हेरोोकू ऐप पर एक webservice के रूप में आर सेट करना और HTTP के माध्यम से इसे कॉल करना चाहता हूं।

अगली चुनौती आर को हेरोकू पर चल रही है - यह मानक वातावरण के हिस्से के रूप में उपलब्ध नहीं है, और यह केवल पढ़ने के लिए फ़ाइल सिस्टम है, जिसमें रूट रूट नहीं है, इसलिए आप केवल sudo apt-get install नहीं कर सकते हैं।

आर को एक मणि में विक्रेता बनाना संभव है - किसी ने इसे https://github.com/deet-uc/rsruby-heroku पर करना शुरू कर दिया है, लेकिन मैं व्यक्तिगत रूप से इसे काम करने में असमर्थ था। सभी निर्भरताओं आदि को स्थापित करके सीधे हेरोोक पर आर बनाना संभव है।- यह वह दृष्टिकोण है जिसे मैंने https://github.com/noahhl/rookonheroku पर लिया है (यदि आप रूक का उपयोग नहीं कर रहे हैं तो चरण 1 की आवश्यकता है)।

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

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