यादृच्छिक जंगलों में गर्भपात की लागत को कैसे नियंत्रित करें?


21

क्या R पैकेज यादृच्छिकता में गर्भपात की लागत को नियंत्रित करना संभव है ?

मेरे अपने काम में गलत नकारात्मक (जैसे, गलती से गायब होना कि किसी व्यक्ति को कोई बीमारी हो सकती है) झूठे सकारात्मक से कहीं अधिक महंगा है। पैकेज रिपर उपयोगकर्ता को अलग-अलग तरीके से वजन घटाने के लिए नुकसान मैट्रिक्स को निर्दिष्ट करके गर्भपात लागत को नियंत्रित करने की अनुमति देता है। क्या कुछ इसी तरह के लिए मौजूद है randomForest? उदाहरण के लिए, मुझे classwtगिन्नी की कसौटी पर नियंत्रण के लिए विकल्प का उपयोग करना चाहिए ?

जवाबों:


8

वास्तव में नहीं, अगर मैन्युअल रूप से आरएफ क्लोनिंग करके rpartमॉडल का बैगिंग नहीं किया जाता है ।

कुछ विकल्प इस तथ्य से आते हैं कि आरएफ का उत्पादन वास्तव में एक कुरकुरा निर्णय के बजाय एक निरंतर स्कोर है, अर्थात कुछ वर्ग पर वोट देने वाले पेड़ों का अंश। इसके साथ निकाला जा सकता है predict(rf_model,type="prob")और बनाने के लिए इस्तेमाल किया जा सकता है , उदाहरण के लिए, एक आरओसी वक्र जो .5 की तुलना में एक बेहतर सीमा को प्रकट करेगा (जिसे बाद में cutoffपैरामीटर के साथ आरएफ प्रशिक्षण में शामिल किया जा सकता है )।

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


MBQ। बहुत धन्यवाद। (i) आरओसी वक्र: इस उदाहरण में मुझे आरओसी वक्र की आवश्यकता नहीं है क्योंकि मेरे पास अपने स्वयं के पुजारी हैं जो लागत भार क्या होना चाहिए। (ii) classwt: हां, मैंने पाया है कि व्यवहार में, और अन्य उपयोगकर्ताओं के अनुरूप, परिणाम अपेक्षित नहीं हैं। (iii) cutoff: मैं cutoffइस उदाहरण में उपयोग करने के बारे में स्पष्ट नहीं हूं और मैं आगे की सलाह का स्वागत करूंगा।
user5944

3

लागत सहित कई तरीके हैं।
(1) प्रत्येक बैगेड ट्री (स्तरीकृत सैंपलिंग) के लिए ओवर / अंडर सैंपलिंग लागतों को पेश करने का सबसे आम तरीका है। आप जानबूझकर असंतुलन डाटासेट।
(२) भार। कभी काम नहीं करता। मुझे लगता है कि प्रलेखन में इस पर जोर दिया गया है। कुछ का दावा है कि आपको बस सभी चरणों में वजन करने की आवश्यकता है, जिसमें गिन्नी विभाजन और अंतिम मतदान शामिल है। अगर यह काम करने जा रहा है, तो यह एक मुश्किल क्रियान्वयन होगा।
(3) वेका में मेटाकास्ट फ़ंक्शन।
(4) एक यादृच्छिक वन को एक संभाव्य वर्गीकरणकर्ता के रूप में मानना ​​और थ्रेशोल्ड को बदलना। मुझे यह विकल्प सबसे कम पसंद है। संभवतः मेरे ज्ञान की कमी के कारण, लेकिन भले ही एल्गोरिथ्म आउटपुट संभावनाएं मेरे लिए उनके साथ व्यवहार करने के लिए समझ में नहीं आता है जैसे कि यह एक संभाव्य मॉडल था।

लेकिन मुझे यकीन है कि अतिरिक्त दृष्टिकोण हैं।


3

यह अनुशंसा की जाती है कि यदि आप जिस चर की भविष्यवाणी करने की कोशिश कर रहे हैं वह 50% के लिए नहीं है class 1और 50% के लिए class 2(ज्यादातर मामलों की तरह), आप सारांश में cutoffवास्तविक का प्रतिनिधित्व करने के लिए पैरामीटर को समायोजित करते हैं OOB

उदाहरण के लिए,

randomForest(data=my_data, formula, ntree = 501, cutoff=c(.96,.04))

इस मामले में, एक का मान होने की संभावना class 1है .96जबकि एक का मूल्य class 2है .04

अन्यथा बेतरतीब जंगलों का एक सीमा होती है 0.5


1

एक को शामिल कर सकते costMatrixमें randomForestके माध्यम से स्पष्ट रूप से parmsपैरामीटर:

library(randomForest)
costMatrix <- matrix(c(0,10,1,0), nrow=2)
mod_rf <- randomForest(outcome ~ ., data = train, ntree = 1000, parms = list(loss=costMatrix))

0

आप पैकेज sampsizeमें फ़ंक्शन का उपयोग करके लागत संवेदनशीलता को शामिल कर सकते हैं randomForest

model1=randomForest(DependentVariable~., data=my_data, sampsize=c(100,20))

(100,20)आपके पास मौजूद डेटा और उन मान्यताओं / व्यावसायिक नियमों के आधार पर आंकड़ों से सावधान रहें ।

एक भ्रम मैट्रिक्स प्राप्त करने के लिए परीक्षण और त्रुटि दृष्टिकोण का एक सा लगता है जो वर्गीकरण त्रुटि की लागत को दर्शाता है। रिचर्ड बर्क के आपराधिक पूर्वानुमानों पर एक नज़र डालें : एक मशीन लर्निंग दृष्टिकोण , पी। 82।

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