এই প্রশ্নটিতে উল্লিখিত সমস্যাটি আর প্যাকেজ গ্ল্যামনেটের ১.7.৩ সংস্করণে স্থির হয়েছে।
পারিবারিক = বহুদিনের সাথে গ্ল্যামনেট চালাতে আমার কিছুটা সমস্যা হচ্ছে এবং আমি ভাবছিলাম যে এই জাতীয় কিছু ঘটেছে বা আমি কী ভুল করছি তা আমাকে বলতে সক্ষম হতে পারে।
আমি যখন আমার নিজস্ব ডামি ডেটা রাখি তখন ত্রুটিটি "প্রয়োগের ক্ষেত্রে ত্রুটি (এনজেড, 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
সমস্যাটি সমাধান করার জন্য আমি গ্ল্যামনেট পাওয়ার চেষ্টা করছিলাম তার একটি চাক্ষুষ বর্ণনা এখানে রয়েছে:
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")
এটি আর সংস্করণ 2.13.1 (2011-07-08) এবং গ্ল্যামনেট 1.7.1 ব্যবহার করছে, যদিও আমি আর 2.14.1 তে একই সমস্যা তৈরি করতে পারি। কোন ধারণা মানুষ?