2017-07-24 70 views
-3

我有10个k表示来自数据集的群集。我想要分别建立所有这些集群的线性回归模型。 即。我想要10个线性回归模型。我如何使用循环在R群集上的线性回归

+0

有一个循环。 (严重:你试过了什么?) – Zach

+0

'lapply(split(train,cluster),lm,formula = price〜。)'请复习[mcve]。 –

+0

谢谢@ G.Grothendieck –

回答

0

我得到了答案。 这就是我真正想要的。 此代码基本上是从哈德利Wikham的github上后的“管理多个模型”

house.cluster <- kmeans(scale(house), 10, 50) 
house$cluster <- house.cluster$cluster 

by_cluster <- train %>% 
    group_by(cluster) %>% 
    nest() 


cluster_model <- function(df) { 
    lm(price ~., data = df) 
} 

models <- by_cluster %>% 
    mutate(
    model = data %>% map(cluster_model) 
) 


models <- models %>% 
    mutate(
    glance = model %>% map(broom::glance), 
    rsq  = glance %>% map_dbl("r.squared") 
) 

现在我想我的预测与测试这10款设置。 这是怎么做到的