क्या स्पार्ट भविष्यवाणियों और प्रतिक्रियाओं का उपयोग करते हुए CART जैसी विधियों के लिए कोई लाइब्रेरी उपलब्ध है?


11

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

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

मैंने चारों ओर देखा है और ऐसा लगता है कि इस तरह की चीज वहां से बाहर होनी चाहिए:

  • रसायनज्ञ इस मुद्दे पर बहुत कुछ करने लगते हैं (ऊपर जो पेपर मैंने जोड़ा था वह नई दवा के यौगिकों को खोजने के बारे में सीखने के बारे में था), लेकिन जिन कार्यान्वयनों को मैं पा सकता था, वे या तो मालिकाना थे या रासायनिक विश्लेषण के लिए अत्यधिक विशिष्ट थे। यह संभव है कि उनमें से एक को फिर से शुद्ध किया जा सकता है, हालांकि।

  • दस्तावेज़ वर्गीकरण एक ऐसा क्षेत्र भी प्रतीत होता है जहाँ विरल फीचर स्पेस से सीखना उपयोगी होता है (अधिकांश दस्तावेज़ों में अधिकांश शब्द नहीं होते हैं)। उदाहरण के लिए, इस पेपर में C4.5 (CART- जैसा एल्गोरिथ्म) के विरल कार्यान्वयन का एक तिरछा संदर्भ है , लेकिन कोई कोड नहीं।

  • मेलिंग सूची के अनुसार , WEKA विरल डेटा को स्वीकार कर सकता है, लेकिन मैं ऊपर लिंक किए गए पेपर में विधि के विपरीत, WEKA वास्तव में व्यर्थ सीपीयू चक्र से बचने के संदर्भ में इसका लाभ लेने के लिए अनुकूलित नहीं है।

अग्रिम में धन्यवाद!


2
आर नहीं, लेकिन पाइथन scikits.lar में विरल मैट्रिस के लिए कुछ बढ़ते समर्थन हैं।
CHL

@ ch1 धन्यवाद। लगता है कि उन्होंने अभी तक पेड़ के तरीके नहीं जोड़े हैं। कोई व्यक्ति कार्यान्वयन पर काम कर रहा है, लेकिन मुझे यकीन नहीं है कि यह विरल डेटा का उपयोग करने में सक्षम होगा। मैं निश्चित रूप से विरल SVM विधियों को ध्यान में रखूँगा, हालाँकि!
डेविड जे। हैरिस

जब आप कहते हैं "कार्ट-लाइक" क्या आप विशेष रूप से निर्णय के पेड़ या किसी भी प्रकार के पूर्वानुमान मॉडल चाहते हैं?
माइकल मैकगोवन

@ मीकल - मैं पेड़ों को पसंद करूंगा, क्योंकि मैं उन्हें बूस्टिंग प्रक्रिया के लिए खिलाऊंगा और उनके पास उच्च विचरण होगा।
डेविड जे। हैरिस

2
मैं एक पेड़ मॉडल के बारे में पता नहीं है, लेकिन glmnetऔर e1071::svmदोनों समर्थन विरल Matrixवस्तुओं। GAMboostऔर GLMboost(पैकेज से GAMboost) भी हो सकता है।
Zach

जवाबों:


2

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

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

इसकी चर्चा यहाँ , यहाँ , यहाँ पर है

मैंने वास्तव में अपने rf पैकेज CloudForest में एक बिंदु पर डेटा का एक विरल डेटा प्रतिनिधित्व लागू किया था, लेकिन इसे धीमा पाया, फिर डेटा का एक सघन प्रतिनिधित्व किया और इसे छोड़ दिया, हालांकि इसने कुछ स्मृति लाभ प्रदान किए।

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


1

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


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

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

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

@ डेविड, मुझे लगता है कि mbq की बात यह है कि एक बड़ा 1-एन-एन कोडिंग (जैसे वेब साइट / ग्राहक आदि पहचानकर्ता) या मौजूद रसायनों की सूची) अक्सर सीखने के लिए एक बहुत बुरा प्रतिनिधित्व है। आप "सुविधाओं" में बदलना बेहतर
मानते हैं

1

क्या आपने R के caretपैकेज को देखा है ? यह एक अंतरफलक यह आसान जैसे पुनरावर्ती विभाजन के लिए कुछ सहित मॉडल की एक किस्म का उपयोग करने के लिए बनाता है कि प्रदान करता है rpart, ctreeऔर ctree2


मैं उन पैकेज / फ़ंक्शंस से परिचित हूं, और उनमें से कोई भी स्पार्स डेटा पर काम नहीं करता है, जहां तक ​​मैं बता सकता हूं।
डेविड जे। हैरिस

1
Matrixवस्तुओं के लिए कैरेट समर्थन अद्भुत होगा, लेकिन यह वर्तमान में मौजूद नहीं है। सब कुछ एक data.frame के लिए मजबूर हो जाता है।
Zach

आप डेवलपर को ईमेल करके उससे इस बारे में पूछ सकते हैं। मैंने उसे किसी और चीज़ पर ईमेल किया और उसने एक उपयोगी उत्तर दिया - max.kuhn [at] pfizer.com
paul
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.