2013-08-15 9 views
8

मैं आर में gbm पैकेज से बहुपद वितरण का उपयोग कर रहा जब मैं predict फ़ंक्शन का उपयोग करें, मैं मूल्यों की एक श्रृंखला मिल:जीबीएम बहुराष्ट्रीय वितरण, भविष्यवाणी कक्षा प्राप्त करने के लिए भविष्यवाणी() का उपयोग कैसे करें?

5.086328 -4.738346 -8.492738 -5.980720 -4.351102 -4.738044 -3.220387 -4.732654 

लेकिन मैं प्रत्येक वर्ग से होने वाली की संभावना प्राप्त करना चाहते हैं। मैं संभावनाओं को कैसे ठीक करूं? धन्यवाद।

+3

(कोई "जीबीएम" पैकेज नहीं है। अक्षरों का मामला आर में महत्वपूर्ण है।) यदि आप डेटा नहीं बनाना चाहते हैं तो सहायता पृष्ठ से नमूना डेटा का उपयोग करने वाले कोड का उत्पादन क्यों न करें? –

+0

आपने एक ऐसा उत्तर स्वीकार कर लिया है जो पिछले 3.5 वर्षों से वास्तव में गलत था। मैंने आपको एक उत्तर दिया जो वास्तव में काम करता है। – smci

उत्तर

1

?predict.gbm पर एक नज़र डालें, आप देखेंगे कि फ़ंक्शन में "प्रकार" पैरामीटर है। predict(<gbm object>, <new data>, type="response") आज़माएं।

+1

नहीं, predict.gbm (..., टाइप = "प्रतिक्रिया") बहुआयामी, या वास्तव में बर्नौली या पोइसन के अलावा किसी भी वितरण के लिए लागू नहीं किया गया है। – smci

+1

प्रति @ एसएमसीआई, वर्तमान में जीबीएम का नवीनतम संस्करण मई 2015 में 2.1.1 जारी किया गया है, और 'टाइप = "प्रतिक्रिया" अभी भी लागू नहीं है। @ smci के कामों के नीचे 'लागू' के सुझाए गए उपयोग, हालांकि। – morten

9

predict.gbm(..., type='response') बहुराष्ट्रीय, या वास्तव में बर्नौली या पोइसन के अलावा किसी भी वितरण के लिए लागू नहीं किया गया है।

तो तुम desertnaut wrote के रूप में, सबसे अधिक संभावना वर्ग (apply(.., 1, which.max) भविष्यवाणी से वेक्टर उत्पादन पर) खोजने के लिए:

preds = predict(your_model, n.trees, newdata=...,type='response') 

pred_class <- apply(preds, 1, which.max) 

बस एक आवरण जो = 'प्रतिक्रिया' और इस रिटर्न टाइप स्वीकार करता है लिखने जब यह एक है बहुआयामी मॉडल।

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