[R] caret package

David Winsemius dwinsemius at comcast.net
Mon Jun 8 19:47:59 CEST 2009


The help page for extractPredictions suggests and testing confirms  
that the function expects a  _list_  of models. The predict function  
is suggested as the method to get predictions from a single model.  
Giving the argument as a list does work with a single model, however:

 > predict(glmmat)
  [1]  0.23544700 -0.03144066  0.24465107  0.59015641  0.22073566   
0.20842277  0.98223087  0.72512869
  [9]  0.79939904  0.48652752  0.53874162

 > extractPrediction(list(glmmat))
    obs        pred  model dataType
1    0  0.23544700 glmnet Training
2    0 -0.03144066 glmnet Training
3    0  0.24465107 glmnet Training
4    0  0.59015641 glmnet Training
5    0  0.22073566 glmnet Training
6    0  0.20842277 glmnet Training
7    1  0.98223087 glmnet Training
8    1  0.72512869 glmnet Training
9    1  0.79939904 glmnet Training
10   1  0.48652752 glmnet Training
11   1  0.53874162 glmnet Training

Invoking it the manner you did would create redundant information  
since the input was the same as the training set:

 > extractPrediction(list(glmmat),testX=x,testY = y)
    obs        pred  model dataType
1    0  0.23544700 glmnet Training
2    0 -0.03144066 glmnet Training
3    0  0.24465107 glmnet Training
4    0  0.59015641 glmnet Training
5    0  0.22073566 glmnet Training
6    0  0.20842277 glmnet Training
7    1  0.98223087 glmnet Training
8    1  0.72512869 glmnet Training
9    1  0.79939904 glmnet Training
10   1  0.48652752 glmnet Training
11   1  0.53874162 glmnet Training
12   0  0.23544700 glmnet     Test
13   0 -0.03144066 glmnet     Test
14   0  0.24465107 glmnet     Test
15   0  0.59015641 glmnet     Test
16   0  0.22073566 glmnet     Test
17   0  0.20842277 glmnet     Test
18   1  0.98223087 glmnet     Test
19   1  0.72512869 glmnet     Test
20   1  0.79939904 glmnet     Test
21   1  0.48652752 glmnet     Test
22   1  0.53874162 glmnet     Test

-- 
David


On Jun 8, 2009, at 12:53 PM, milton ruser wrote:

> Dear Sunny Vic,
>
> I am forwarding it to the list, to help the helpers :-)
>
> bests..
> milton
>
> On Mon, Jun 8, 2009 at 12:41 PM, sunny vic <vss.0116 at gmail.com> wrote:
>
>> Hi Milton,
>>  here you go
>>
>> X1=rnorm(11, 50, 10)
>> X2=rnorm(11, 20, 10)
>> X3=rnorm(11, 50, 60)
>> X4=rnorm(11, 10, 2)
>> X5=rnorm(11, 5, 22)
>>
>> x<-cbind(X1,X2,X3,X4,X5);
>> y <- c(0, 0, 0,0,0,0,1,1,1,1,1) ;
>>
>> tc=trainControl(method="cv", number=10 );
>> glmmat<-train(x,y,method="glmnet", trControl=tc);
>> extractPrediction(list(glmmat,testX=x,testY = y));
>>
>> Error in models[[i]]$finalModel :
>>  $ operator is invalid for atomic vectors
>> __________________________________________________
>>
>> to give you more why I included list in the extractPrediction,  
>> without that
>> it looks for a list of models , so I found that in the help and  
>> used list
>> which eliminated that error and is now giving something new.
>>
>>
>> ERROR without List in extractPrediction
>>
>> extractPrediction(glmmat,testX=x,testY = y);
>>
>> Error in models[[1]]$trainingData :
>>  $ operator is invalid for atomic vectors
>> _____________________________________________
>>
>> I am actually trying to get the confusion matrix so I can calculate  
>> the
>> accuracy, sensitivity and specificity of the model
>>
>> cheers
>> vss
>>
>>
>> On Mon, Jun 8, 2009 at 10:42 AM, milton ruser  
>> <milton.ruser at gmail.com>wrote:
>>
>>> Hi Sonny Vic,
>>>
>>> how about you send a reproducible code?
>>>
>>> cheers
>>> milton
>>>
>>>  On Mon, Jun 8, 2009 at 11:25 AM, sunny vic <vss.0116 at gmail.com>  
>>> wrote:
>>>
>>>> Hi all
>>>> I am using the caret package and having difficulty in obtaining the
>>>> results
>>>> using regression, I used the glmnet to model and trying to get the
>>>> coefficients and the model parameters  I am trying to use the
>>>> extractPrediction to obtain a confusion matrix and it seems to be  
>>>> giving
>>>> me
>>>> errors.
>>>>
>>>>
>>>> x<-read.csv("x.csv", header=TRUE);
>>>> y<-read.csv("y.csv", header=TRUE);
>>>> tc=trainControl(method="cv", number=10 );
>>>> glmmat<-train(x,y,method="glmnet", trControl=tc);
>>>> extractPrediction(list(glmmat,testX=x,testY = y));
>>>>
>>>> any help would be great
>>>> thanks
>>>> vss

-- 

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list