R 在cv.glmnet()中运行用于多项式分类的大型矩阵

R 在cv.glmnet()中运行用于多项式分类的大型矩阵,r,sparse-matrix,logistic-regression,glmnet,multinomial,R,Sparse Matrix,Logistic Regression,Glmnet,Multinomial,我正在研究一个大型矩阵,样本数N=40,特征数p=7130。我正在尝试将cv.glmnet()用于山脊,但在执行此操作时出错。 数据集的维度为(407130) cv.glmnet()的代码如下所示: ridge2_cv <- cv.glmnet(x, y, ## type.measure: loss to use for cross-validation. type.measure = "deviance",

我正在研究一个大型矩阵,样本数N=40,特征数p=7130。我正在尝试将
cv.glmnet()
用于山脊,但在执行此操作时出错。
数据集的维度为(407130)
cv.glmnet()的代码如下所示:

ridge2_cv <- cv.glmnet(x, y,
                   ## type.measure: loss to use for cross-validation.
                   type.measure = "deviance",
                   ## K = 10 is the default.
                   nfold = 10,
                   ## Multinomial regression
                   family = "multinomial",
                   ## ‘alpha = 1’ is the lasso penalty, and ‘alpha = 0’ the ridge penalty.
                   alpha = 0)

ridge2\u cv能否尝试将data.matrix()用作矩阵而不是as.matrix?我记得我试过类似的东西

ridge2_cv <- cv.glmnet(data.matrix(x), y,
               ## type.measure: loss to use for cross-validation.
               type.measure = "deviance",
               ## K = 10 is the default.
               nfold = 10,
               ## Multinomial regression
               family = "multinomial",
               ## ‘alpha = 1’ is the lasso penalty, and ‘alpha = 0’ the ridge penalty.
               alpha = 0)

ridge2\u简历你能编辑你的问题,让我们看看
str(x)
str(y)
(也许还有
table(y)
)?@BenBolker我在检查
typeof(x)
typeof(y)
时发现了这个问题。数据帧被读取为字符,我必须使用
read.table
并根据我的问题进行更改。这就解决了问题。谢谢你的建议。它给了我解决问题的想法是的,你的答案在某些情况下是正确的,但我的问题是兼容性。当我转换矩阵时,数据被读取为字符。我把它改成了双倍的,它成功了。谢谢你的建议