किसी दिए गए प्रतिक्रिया चर के संबंध में इष्टतम बायनिंग


12

मैं एक निरंतर प्रतिक्रिया (लक्ष्य) बाइनरी चर के संबंध में और एक पैरामीटर के रूप में अधिकतम अंतराल के साथ निरंतर चर की इष्टतम बीनिंग विधि (विवेक) की तलाश कर रहा हूं।

उदाहरण: मेरे पास "ऊंचाई" (अंक निरंतर) और "has_back_pains" (बाइनरी) चर वाले लोगों की टिप्पणियों का एक सेट है। मैं चाहता हूं कि पीठ के दर्द वाले लोगों के अलग-अलग अनुपात में 3 अंतराल (समूहों) में ऊँचाई अलग-अलग हो, ताकि एल्गोरिथम समूहों के बीच अंतर को अधिकतम कर सके (उदाहरण के लिए दिए गए प्रतिबंधों के साथ, कि प्रत्येक अंतराल में कम से कम x अवलोकन हों)।

इस समस्या का स्पष्ट समाधान निर्णय पेड़ों (एक साधारण एक-चर मॉडल) का उपयोग करना होगा, लेकिन मुझे आर में कोई भी फ़ंक्शन नहीं मिल सकता है, जिसमें पैरामीटर के रूप में "शाखाओं की अधिकतम संख्या" होगी - यह सभी चर को विभाजित करते हैं 2 ग्रोपस में (<= x और> x)। एसएएस खान में एक "अधिकतम शाखा" पैरामीटर है, लेकिन मैं एक गैर वाणिज्यिक समाधान की तलाश कर रहा हूं।

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

मेरी समस्या का सबसे करीबी समाधान आर (जो पार्टी पैकेज से ctree फ़ंक्शन पर निर्भर करता है) में smbinning पैकेज में लागू किया गया है, लेकिन इसमें दो कमियां हैं: अंतराल की संख्या निर्धारित करना असंभव है (हालांकि, आप इसे बदलने के बारे में एक तरीका पा सकते हैं) पी पैरामीटर) और यह तब काम नहीं करता है जब डेटा वेक्टर में 10 से कम अद्वितीय मान होते हैं। वैसे भी, आप यहाँ उदाहरण आउटपुट देख सकते हैं (Cutpoint और Odds कॉलम महत्वपूर्ण हैं):

Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate   Odds  LnOdds     WoE     IV
1   <= 272   9081     169   8912      9081        169      8912 0.1874  0.9814 0.0190 -3.9653 -0.6527 0.0596
2   <= 311   8541     246   8295     17622        415     17207 0.1762  0.9712 0.0297 -3.5181 -0.2055 0.0068
3   <= 335   2986     163   2823     20608        578     20030 0.0616  0.9454 0.0577 -2.8518  0.4608 0.0163
4  Missing  27852    1125  26727     48460       1703     46757 0.5747  0.9596 0.0421 -3.1679  0.1447 0.0129
5    Total  48460    1703  46757        NA         NA        NA 1.0000  0.9649 0.0364 -3.3126  0.0000 0.0956

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


SPSS में Optimal Binning कमांड है। गूगल SPSS Algorithms Optimal Binning
ttnphns

क्या आपने इस पोस्ट को देखा है stackoverflow.com/questions/7018954/… इसमें सूचना मूल्य के उपयोग का उल्लेख है, लेकिन यह स्पष्ट नहीं है कि इसका आईवी = 1 से क्या मतलब है, या यह कैसे समझाया जाए
adam

जवाबों:


7

इस पुस्तक को यहाँ पढ़ते समय (नागराजन, 2103 [1]), मुझे इस बहुमूल्य जानकारी के बारे में पता चला कि मैं बेशर्मी से यहाँ उद्धृत कर रहा हूँ:

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

  • नेटवर्क की संरचना सीखने से पहले heuristics का उपयोग करना। कुछ उदाहरण हैं: स्टर्ज, फ्रीडमैन-डायकोनिस या स्कॉट नियम (वेनबेल्स और रिप्ले, 2002)।

  • सटीकता और सूचना हानि (कोहावी और सहमी, 1996) को संतुलित करने के लिए अंतरालों और उनकी सीमाओं की संख्या का चयन, फिर से एक समय में एक चर और नेटवर्क संरचना से पहले सीखा गया है। चर के जोड़े पर विचार करने वाला एक समान दृष्टिकोण हार्टेमिंक (2001) में प्रस्तुत किया गया है।

  • जब तक कोई सुधार नहीं किया जाता है, तब तक सीखने और विवेकपूर्ण तरीके से प्रदर्शन करना (फ्रीडमैन और गोल्डस्मिड्ट, 1996)।

इन रणनीतियों मूल डेटा के असतत प्रतिनिधित्व की सटीकता और परिवर्तन की कम्प्यूटेशनल दक्षता के बीच अलग-अलग ट्रेड-ऑफ का प्रतिनिधित्व करते हैं।

यह जानकारी प्रदान की जाती है, यदि आप उस बिनिंग विधि को सही ठहराना चाहते हैं जिसका आप उपयोग करना चाहते हैं और सीधे पैकेज का उपयोग नहीं करना चाहते हैं।

[१]: नागरजन आर। (२०१३),
सिस्टम बायोलॉजी
स्प्रिंगर में एप्लीकेशन के साथ आर में बायेसियन नेटवर्क


4

आर। Https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information/ignign के लिए सूचना पैकेज आज़माएं .html

सूचना पैकेज में WoE और IV की गणना के लिए कार्यक्षमता है (डिब्बे की संख्या एक लचीला पैरामीटर है, डिफ़ॉल्ट 10 है) और डेटा की खोज के लिए एक उपयोगी उपकरण है और इसके परिणामस्वरूप बायनिंग के लिए। आउटपुट में ऑड्स शामिल नहीं हैं, हालांकि; और शून्य को एक अलग बिन के रूप में निर्दिष्ट करना संभव नहीं है (मेरे कार्यों के लिए शून्य अक्सर अपने आप में एक वैध बिन है); और सूचना पैकेज से आउटपुट प्राप्त करना अच्छा होगा जो कि स्मोबनिंग के समान होगा। हालाँकि, कहा जा रहा है कि अच्छे-से-लेकिन अभी भी सूचना पैकेज की सुविधाएँ उपलब्ध नहीं हैं, WoE और IV (woe, klaR) के लिए अन्य R पैकेजों ने सूचना पैकेज के रूप में उपयोगी उपकरणों की छाप नहीं बनाई है, वास्तव में मैं 2-3 प्रयासों के बाद उन्हें चलाने में विफल रहा। Dscretisation / binning के कार्य के लिए, सूचना और smbinning संकुल अच्छी तरह से एक साथ काम कर सकते हैं,

वास्तविक बाइनिंग के लिए मैंने कट () फ़ंक्शन के बजाय डेटाटेबल का उपयोग किया। नीचे मेरे पोस्ट का लिंक देखें, इसमें प्रारंभिक प्रश्न के बहुत नीचे जेनेरिक कोड है: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- से-एक और-dataframe

आशा है ये मदद करेगा।


@kjetil, kjetil b halvorsen, आप सही हैं। सूचना पैकेज में WoE और IV की गणना करने के लिए कार्यक्षमता है (डिब्बे की संख्या एक लचीला पैरामीटर है, डिफ़ॉल्ट 10 है) और डेटा की खोज के लिए एक उपयोगी साधन है और इसके परिणामस्वरूप बायनिंग के लिए। आउटपुट में ऑड्स शामिल नहीं हैं, हालांकि। और शून्य को एक अलग बिन के रूप में निर्दिष्ट करना संभव नहीं है (मेरे कार्यों के लिए शून्य अक्सर अपने आप में एक वैध बिन है)। WoE और IV (woe, klaR) के लिए अन्य आर पैकेज सूचना पैकेज के रूप में उपयोगी उपकरणों की छाप नहीं बना सके। तो सूचना और smbinning पैकेज एक संयोजन के रूप में अच्छी तरह से एक साथ काम कर सकते हैं।
अक्तन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.