2017-07-24 23 views
-3

Ich habe 10 k bedeutet Cluster aus einem Datensatz. Ich möchte lineares Regressionsmodell mit all diesen Clustern separat erstellen. dh. Ich möchte 10 lineare Regressionsmodelle. Wie kann ich dies mit Schleifen in RLineare Regression über Cluster

+0

Mit einer Schleife. (Ernst: Was hast du probiert?) – Zach

+0

'lapply (Split (Zug, Cluster), lm, Formel = Preis ~.)' Bitte überprüfen Sie [mcve]. –

+0

Danke @ G.Grothiedieck –

Antwort

0

Ich habe die Antwort. Das ist, was ich wirklich wollte. Dieser Code ist im Grunde von Hadley Wikham der Github post „Verwalten mehrerer Modelle“

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") 
) 

Jetzt möchte ich mein Test vorhersagen, mit diesen 10 Modellen eingestellt. Wie kann dies getan werden