簡體   English   中英

在多個模型中有效使用predict.glm

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM