2015-04-05 5 views
9

मेरी प्रतिक्रिया एक स्पष्ट चर (कुछ अक्षर) है, इसलिए मैंने मॉडल बनाते समय वितरण = 'बहुपद' का उपयोग किया, और अब मैं प्रतिक्रिया की भविष्यवाणी करना चाहता हूं और संभावनाओं के मैट्रिक्स के बजाय इन वर्णमाला के संदर्भ में आउटपुट प्राप्त करना चाहता हूं।जीबीएम मल्टीनोमियल डिस्ट में, स्पष्ट आउटपुट प्राप्त करने के लिए भविष्यवाणी का उपयोग कैसे करें?

हालांकि predict(model, newdata, type='response') में, यह type='link' के परिणामस्वरूप संभावनाएं देता है।

क्या स्पष्ट आउटपुट प्राप्त करने का कोई तरीका है?

BST = gbm(V1~.,data=training,distribution='multinomial',n.trees=2000,interaction.depth=4,cv.folds=5,shrinkage=0.005) 

predBST = predict(BST,newdata=test,type='response') 
+0

कैसे प्रतिक्रिया अधिकतम संभावना होने चुनने के बारे में? –

उत्तर

21

predict.gbm प्रलेखन में, यह उल्लेख किया गया है:

प्रकार = "प्रतिक्रिया" तो जीबीएम वापस उसी पैमाने पर करने के परिणाम के रूप में परिवर्तित कर देता है। वर्तमान में इसका एकमात्र प्रभाव बर्नौली के लिए संभावनाएं और पोइसन के लिए अपेक्षित मायने रखता है। अन्य वितरण "प्रतिक्रिया" और "लिंक" के लिए वही लौटाएं।

आपको क्या करना चाहिए, के रूप में डोमिनिक पता चलता है, है, जिसके परिणामस्वरूप predBST मैट्रिक्स से उच्चतम संभावना के साथ प्रतिक्रिया लेने के लिए भविष्यवाणी से वेक्टर उत्पादन पर apply(.., 1, which.max) कर कर रहा है। यहाँ iris डाटासेट के साथ एक कोड नमूना है:

library(gbm) 

data(iris) 

df <- iris[,-c(1)] # remove index 

df <- df[sample(nrow(df)),] # shuffle 

df.train <- df[1:100,] 
df.test <- df[101:150,] 

BST = gbm(Species~.,data=df.train, 
     distribution='multinomial', 
     n.trees=200, 
     interaction.depth=4, 
     #cv.folds=5, 
     shrinkage=0.005) 

predBST = predict(BST,n.trees=200, newdata=df.test,type='response') 

p.predBST <- apply(predBST, 1, which.max) 

> predBST[1:6,,] 
    setosa versicolor virginica 
[1,] 0.89010862 0.05501921 0.05487217 
[2,] 0.09370400 0.45616148 0.45013452 
[3,] 0.05476228 0.05968445 0.88555327 
[4,] 0.05452803 0.06006513 0.88540684 
[5,] 0.05393377 0.06735331 0.87871292 
[6,] 0.05416855 0.06548646 0.88034499 

> head(p.predBST) 
[1] 1 2 3 3 3 3 
+0

यह वास्तव में सहायक है, बहुत बहुत धन्यवाद! – shavendy

+0

उत्तर को स्वीकार करने, और/या ऊपर उठाने के बारे में कैसे? :-) – desertnaut

+0

सूखी प्रतिष्ठा बहुत कम करने के लिए बहुत कम है, वैसे भी धन्यवाद :) – shavendy

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

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