बड़े डेटा के लिए पहला कदम (


21

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

जब तक डेटा के उत्तरोत्तर बड़े और बड़े (यादृच्छिक) उप-नमूने पर कुछ पूर्वानुमान मॉडल फिट करें:

  1. फिटिंग और क्रॉस-वैलिडेटिंग मॉडल को कम्प्यूटेशनल रूप से कठिन हो जाता है (जैसे, मेरे लैपटॉप पर अनुचित रूप से धीमा, आर मेमोरी से बाहर निकलता है, आदि), या

  2. प्रशिक्षण और परीक्षण RMSE या सटीक / रिकॉल मानों को स्थिर करते हैं।

यदि प्रशिक्षण और परीक्षण की त्रुटियां स्थिर नहीं हुईं (1.), तो सरल मॉडल का उपयोग करें और / या मॉडल के मल्टीकोर या मल्टीकोड संस्करणों को लागू करें और शुरुआत से पुनरारंभ करें।

यदि प्रशिक्षण और परीक्षण त्रुटियां स्थिर हो गई हैं (2.):

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

  • यदि 'बड़ा' है और आगे का विश्लेषण महंगा है, तो चर महत्व और अंत का विश्लेषण करें।एनरोंयूरोंटी

मैं जैसे संकुल का उपयोग करना चाहते biglm, speedglm, multicore, और ffआर में शुरू में, और बाद में अधिक जटिल एल्गोरिदम और / या multinode (EC2 पर) आवश्यक के रूप में इस्तेमाल करते हैं।

क्या यह ध्वनि एक उचित दृष्टिकोण की तरह है, और यदि हां, तो क्या आपके पास कोई विशिष्ट सलाह या सुझाव है? यदि नहीं, तो आप इस आकार के डेटा सेट के बजाय क्या प्रयास करेंगे?


1
यह एक उचित दृष्टिकोण की तरह लगता है। मुझे इसी तरह के दृष्टिकोण के बारे में एक बात मिली: youtube.com/watch?v=X9YVSDWQokQ
अल्फ़ा

2
jmlr.csail.mit.edu/proceedings/papers/v7/miller09/miller09.pdf यह मददगार हो सकता है। : गणित यहां पर अधिक जानकारी ms.unimelb.edu.au/~millerh/papers/gencor_JCGS.pdf
DCL

@dcl: धन्यवाद - विचार एक अच्छा, कम्प्यूटेशनल रूप से सस्ता, नॉनलाइनर वैरिएबल चयन विधि है जो अच्छी तरह से समानांतर होगा (हालांकि यह एकतरफा है)। मैं इसे एक कोशिश दे सकता हूं क्योंकि यह कोड के लिए तेज़ और बहुत सरल है। मैं मूल रूप से इस बहुत अच्छे एल्गोरिदम का उपयोग करने के बारे में सोच रहा था: code.google.com/p/rf-ace
18

@ अल्फ़ा: मुझे वास्तव में यह विचार पसंद है! क्रमिक रूप से सबसे खराब प्रदर्शन करने वाले मेटा-मापदंडों को खत्म करने के लिए डेटा के बड़े और बड़े सबसेट पर अनुक्रमिक परीक्षण का उपयोग करना। यह चीजें काफी ऊपर उठनी चाहिए। धन्यवाद! ps यहाँ बात का एक पेपर संस्करण है: biglearn.org/files/papers/biglearn2011_submission_2.pdf
लॉकऑफ

जवाबों:


2

आपको इस आकार के डेटासेट के लिए प्रतिगमन और वर्गीकरण के लिए ऑनलाइन तरीकों की जांच करनी चाहिए। इन तरीकों से आप पूरे डेटासेट को मेमोरी में लोड किए बिना उपयोग कर सकते हैं।

आप Vowpal Wabbit (VW) को भी देख सकते हैं:

https://github.com/JohnLangford/vowpal_wabbit/wiki

यह आउट ऑफ कोर ऑनलाइन विधि का उपयोग करता है, इसलिए इसे इस आकार के डेटासेट को संभालने में सक्षम होना चाहिए। आप प्रतिगमन और वर्गीकरण कर सकते हैं और इसमें विरल प्रारूपों के लिए समर्थन है। आप VW में दंडित संस्करण (जैसे lasso- प्रकार प्रतिगमन / वर्गीकरण) भी कर सकते हैं, जो आपके मॉडल की सटीकता में सुधार कर सकता है।


2

मैं Hadoop और RMR (R में मैप रिड्यूस के लिए एक विशिष्ट पैकेज) का उपयोग करने का सुझाव दूंगा। इस रणनीति के साथ आप कमोडिटी कंप्यूटर पर बड़े डेटासेट को एक किफायती कॉन्फ़िगरेशन के साथ चला सकते हैं (शायद दो घंटे में आप दोनों Hadoop और RMR (RHadoop) इंस्टॉल और रनिंग के साथ आते हैं)।

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

मैं आपको अपने सुझाव का समर्थन करते हुए कुछ लिंक देता हूं:

  • यह लिंक आपको एकल नोड क्लस्टर (एक कंप्यूटर) पर Hadoop स्थापित करने के लिए एक ट्यूटोरियल की ओर ले जाएगा।
  • यह लिंक और यह लिंक आपको दिखाएगा कि अपने Hadoop क्लस्टर पर RMR कैसे स्थापित करें।
  • और अंत में, यहां आपको रोडाओप के माध्यम से लॉजिस्टिक रिग्रेशन का एक उदाहरण मिल सकता है।

इसलिए, मेरी सलाह है कि इन दिशानिर्देशों का पालन करें क्योंकि यह निश्चित रूप से इस योग्य है कि आपका डेटा बहुत बड़ा हो।


0

यह एक उत्तर की तुलना में अधिक टिप्पणी है, लेकिन मैं इसे टिप्पणी के रूप में पोस्ट नहीं कर सकता (50 प्रतिनिधि की आवश्यकता है) ।।

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

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

अंत में, यह सोचने की कोशिश करें कि क्या यह आपके डेटासेट से अधिक से अधिक पंक्तियों का उपयोग करने के लिए समझ में आता है। यह एक जनसंख्या डेटासेट, एक अर्ध-जनसंख्या डेटासेट या नमूना नमूना है? आप संपूर्ण डेटा का उपयोग करने की तुलना में अपने डेटासेट पर एक अच्छे नमूने के साथ बेहतर परिणाम प्राप्त कर सकते हैं। इस पोस्ट पर एक नज़र डालें: क्या नमूना 'बड़े डेटा' के समय में प्रासंगिक है?

उम्मीद है की यह मदद करेगा

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