Ich möchte die Modellleistung für eine Reihe von Modellen vergleichen, die die gleichen Prädiktoren, aber unterschiedliche Modellparameter verwenden. Dies scheint der Ort zu sein, an dem man broom
verwenden kann, um eine saubere Ausgabe zu erstellen, aber ich kann es nicht herausfinden. Hier einige nicht-funktionierenden Code, der vorschlagen hilft, was ich denke:ordentliche Methode zum Testen von Modellparametern
seq(1:10) %>%
do(fit = knn(train_Market, test_Market, train_Direction, k=.), score = mean(fit==test_Direction)) %>%
tidy()
Weitere Zusammenhang dieser Teil eines der ISLR Labors ist, die wir tidyverse-ify versuchen. Sie können das gesamte Labor sehen hier: https://github.com/AmeliaMN/tidy-islr/blob/master/lab3/lab3.Rmd
[Update: reproduzierbares Beispiel] Es ist schwer, ein minimales Beispiel hier, weil der Bedarf an Daten vor Modellanpassung Gerangel zu machen, aber dies sollte reproduzierbar sein:
library(ISLR)
library(dplyr)
train = Smarket %>%
filter(Year < 2005)
test = Smarket %>%
filter(Year >= 2005)
train_Market = train %>%
select(Lag1, Lag2)
test_Market = test %>%
select(Lag1, Lag2)
train_Direction = train %>%
select(Direction) %>%
.$Direction
set.seed(1)
knn_pred = knn(train_Market, test_Market, train_Direction, k=1)
mean(knn_pred==test_Direction)
knn_pred = knn(train_Market, test_Market, train_Direction, k=3)
mean(knn_pred==test_Direction)
knn_pred = knn(train_Market, test_Market, train_Direction, k=4)
mean(knn_pred==test_Direction)
usw.
Vielen Dank für mich zu halten ehrlich, Alex. – AmeliaMN
Versuchen Sie, bei dplyr/'do' zu bleiben? Dies scheint eine gute Wahl für List-Loops a la 'lapply' oder purrr zu sein. – aosmith
Sorry Amelia. Es ist nur so, dass ich den Link durchging und meine Aufmerksamkeit verlor. –