इस प्रश्न में वर्णित समस्या आर पैकेज ग्लमनेट के 1.7.3 संस्करण में तय की गई है।
मुझे परिवार के साथ glmnet चलाने में कुछ समस्याएं हो रही हैं = बहुराष्ट्रीय, और सोच रहा था कि ऐसा ही कुछ हुआ है या मुझे यह बताने में सक्षम हो सकता है कि मैं क्या कर रहा हूं।
जब मैं अपना खुद का डमी डेटा डालता हूं, तो त्रुटि "लागू करने में त्रुटि (nz, 1, मंझला): मंद (एक्स) एक सकारात्मक लंबाई होनी चाहिए" जब मैं चलता हूं cv.glmnet
, तो रिपोर्ट की जाती है , इसके अलावा "यह काम नहीं किया" मेरे लिए बहुत जानकारीपूर्ण नहीं था।
y=rep(1:3,20) #=> 60 element vector
set.seed(1011)
x=matrix(y+rnorm(20*3*10,sd=0.4),nrow=60) # 60*10 element matrix
glm = glmnet(x,y,family="multinomial") #=> returns without error
crossval = cv.glmnet(x,y,family="multinomial") #=> Error in apply(nz, 1, median) : dim(X) must have a positive length
crossval = cv.glmnet(x,y,family="multinomial",type.measure="class") #=> Error in apply(nz, 1, median) : dim(X) must have a positive length
crossval = cv.glmnet(x,y,family="multinomial",type.measure="mae") #=> Error in apply(nz, 1, median) : dim(X) must have a positive length
cvglm = cv.glmnet(x,y,family="multinomial",lambda=2) #=> Error in apply(nz, 1, median) : dim(X) must have a positive length
यहाँ समस्या का एक दृश्य वर्णन है जिसे मैं हल करने के लिए glmnet प्राप्त करने की कोशिश कर रहा था, अगर वह मदद करता है:
my_colours = c('red','green','blue')
plot(x[,1],x[,2],col=my_colours[y])
मैं पैकेज डॉक्स से उदाहरण कोड को चलाने में सक्षम हूं, जिससे मुझे संदेह होता है कि मैं या तो कुछ गलत समझ रहा हूं या फिर ग्लमैनेट में एक बग है।
library(glmnet)
set.seed(10101)
n=1000;p=30
x=matrix(rnorm(n*p),n,p) #=> 1000*30 element matrix
beta3=matrix(rnorm(30),10,3)
beta3=rbind(beta3,matrix(0,p-10,3))
f3=x%*% beta3
p3=exp(f3)
p3=p3/apply(p3,1,sum)
g3=rmult(p3) #=> 1000 element vector
set.seed(10101)
cvfit=cv.glmnet(x,g3,family="multinomial")
यह R संस्करण 2.13.1 (2011-07-08) और glmnet 1.7.1 का उपयोग कर रहा है, हालाँकि मैं R 2.14.1 पर भी यही समस्या उत्पन्न कर सकता हूँ। कोई विचार लोग?