Closed Captain-Pam closed 4 years ago
model = lm(MPB ~ ., data = Data)
coef = as.data.frame(summary(model)$coefficients)
这里我建议使用一下 lasso 和 ridge 进行正则化。 @Cobbybaby
data_train <- Data[-j,]
data_test <- Data[j,]
flt = paste0('MPB_binary~', paste(rank_r1[1:i], collapse = "+"))
model = glm(formula(flt), data = data_train, family = binomial())
prob <-
c(prob,
predict(model, newdata = data_test, type = "response"))
这里是一步交叉验证的方式,但是我觉得可以不需要那么细致,做到 fold=5就差不多了。 @Cobbybaby 因为样本本身不多,这么多的k-fold 会导致每个 bag 的重叠度很高,泛化能力下降。
for (j in 1:nrow(Data))
> nrow(geno_binary)
[1] 684
这行代码导致每个变量需要跑 684 次 folds 所以很慢,这里换成 k-fold = 5 试试就好了。
@Cobbybaby 复现代码见 commit https://github.com/JiaxiangBU/tutoring2/commit/d2294130dd02da412993790bf53f332155969899
简述问题
家祥哥,好! 1,我最近在做个逻辑回归模型(主要是两个函数)。简单介绍回归的过程:数据共有684行471列。第一,二列是要分别用的两个因变量Y。首先用MPB与除MPB_binary的所有列做线性回归,会得出每个变量的p值,对p值进行排序后(不要截距的p值),作为后面第二个Y(MPB_binary)与这些变量逻辑回归加入的顺序。第二次逻辑回归中,每个变量(除MPB)分别依次累积加入逻辑回归模型中MPB_binary ,自变量加入的顺序是按照上面P值得顺序,累积加入是指:
y~a1
,y~a1+a2
,y~a1+a2+a3
,...每个逻辑回归分别进行留一法交叉验证,并计算逻辑回归的AUC。 2,getAUC函数中被注释掉的代码是对预测概率的保存,因为目前这个计算量有点大结果还没出来,我不知道我这样做是不是有错误或者使用不是很好,也烦请家祥哥帮我看看哦!希望输出的结果
主要是想我这样做两层的循环运行太慢了,不知道是否有更好的方法呢?
(最后是画每个AUC与自变量的散点图并连接成线)
过程中产生的报错 (可选)
计算量还是有点大,结果还没出来,昨晚提交服务器的,现在也没出来。 ...
有关联的问题
直接把链接复制在此。