【发布时间】:2015-07-11 18:37:26
【问题描述】:
在尝试将 glmnet() 与 family="binomial" 拟合时出现此错误,以进行 Logistic 回归拟合:
> data <- read.csv("DAFMM_HE16_matrix.csv", header=F)
> x <- as.data.frame(data[,1:3])
> x <- model.matrix(~.,data=x)
> y <- data[,4]
> train=sample(1:dim(x)[1],287,replace=FALSE)
> xTrain=x[train,]
> xTest=x[-train,]
> yTrain=y[train]
> yTest=y[-train]
> fit = glmnet(xTrain,yTrain,family="binomial")
Error in lognet(x, is.sparse, ix, jx, y, weights, offset, alpha, nobs, :
one multinomial or binomial class has 1 or 0 observations; not allowed
任何帮助将不胜感激 - 我已经搜索了互联网,但无法找到任何帮助
编辑:
数据如下所示:
> data
V1 V2 V3 V4
1 34927.00 156.60 20321 -12.60
2 34800.00 156.60 19811 -18.68
3 29255.00 156.60 19068 7.50
4 25787.00 156.60 19608 6.16
5 27809.00 156.60 24863 -0.87
...
356 26495.00 12973.43 11802 6.35
357 26595.00 12973.43 11802 14.28
358 26574.00 12973.43 11802 3.98
359 25343.00 14116.18 11802 -2.05
【问题讨论】:
-
您确定您的
yTrain至少包含 2 个不同的值吗? -
@HongOoi 绝对是。有 287 个不同的值,我检查以确保它不是矩阵而是向量。
-
@HongOoi 我也尝试运行 glmnet(x,y,family="binomial") 产生相同的错误。
-
好吧,等一下;您的
V4变量似乎是连续的,而不是二进制的。你不能用它来拟合逻辑模型。 -
这个错误也可以正常发生(当目标变量是一个因素时),例如在 cv.glmnet 中,对于一些随机种子的选择,特别是。具有严重的类别不平衡,当其中一个 CV 折叠实际上最终只有 0 或 1 个观察值时。由于这是随机发生的,因此您必须优雅地处理它。
标签: r logistic-regression glmnet