[英]Efficiently use predict.glm with multiple models
我正在權衡使用一個整體模型相對於在約100,000行數據上拆分成兩個不同模型(拆分模型)的功效。 為此,我從拆分模型中獲取結果,如下所示:
preds <- numeric(nrow(DF))
for (i in 1:nrow(DF))
{
if (DF[i,]$col == condition)
{
preds[i] <- predict(glm1, DF[i,])
}
else
{
preds[i] <- predict(glm2, DF[i,])
}
}
無論出於何種原因,這似乎都非常緩慢,特別是與僅按下整個數據框的新聞相比時:
preds <- predict(glm1,DF)
您對我如何優化第一個代碼片段有任何想法嗎?
preds1 <- predict(glm1, DF[DF$col == condition, ])
preds2 <- predict(glm2, DF[DF$col != condition,])
如果要在保存向量中使用它們,請使用c()
。
如果您想使用按condition
分層的實際值和預測值來構建數據框,則首先要創建一個結構,該結構包含“ actual”和cond
變量,其中某些變量目前尚未命名或歸屬於任何特定結構,因此我假設它們位於名稱為DF
的數據框中,其列名稱為“ actual”:
compare.df <- data.frame(act=DF$actual, cond =DF$col, pred = NA)
compare.df[DF$col==condition, 'pred'] <-
predict(glm1, DF[DF$col == condition, ])
compare.df[DF$col !=condition, 'pred'] <-
predict(glm2, DF[DF$col != condition, ])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.