Я пытаюсь реализовать байесовскую модель в R с использованием пакета bas с настройкой этих значений для моей модели:
databas <- bas.lm(at_areabuilding ~ ., data = dataCOMMA, method = "MCMC", prior = "ZS-null", modelprior = uniform())
Я пытаюсь предсказать область данного состояния с помощью определенной области присутствует для этого конкретного государства; но для разных почтовых индексов. Моя модель в основном находит различные почтовые индексы, присутствующие в данных для данного состояния (используя для этого индекс состояния), а затем выдает результат.
Теперь, когда я пытаюсь предсказать область состояния, я даю этот ввод:
> UT <- data.frame(zip = 84321, loc_st_prov_cd = "UT" ,state_idx = 7)
> predict_1 <- predict(databas,UT, estimator="BMA", interval = "predict", se.fit=TRUE)
> data.frame('state' = 'UT','estimated area' = predict_1$Ybma)
Теперь я получаю вывод для этого состояния. Предположим, у меня есть список состояний с заданными почтовыми индексами, и я хочу запустить свою модель (базы данных) в этом списке и получить прогнозы, я не могу сделать это, используя описанный выше подход, так как это займет время. Есть ли другой способ сделать то же самое? Я сделал то же самое с помощью одного джентльмена, и вот мой код:
pred <- sapply(1:nrow(first), function(row) { predict(basdata,first[row, ],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma })
basdata: Сначала моя модель: мой новый набор данных, для которого я прогнозирую площадь. Теперь проблема, с которой я столкнулся, заключается в том, что коду требуется много времени, чтобы предсказать значения. Он перебирает каждую строку и вычисляет площадь. В моем наборе данных 150000 строк, и я хотел бы попросить кого-нибудь помочь мне оптимизировать производительность этого кода.