Rozumiem pojęcie skalowania macierzy danych do zastosowania w modelu regresji liniowej. Na przykład w R możesz użyć:
scaled.data <- scale(data, scale=TRUE)
Moje jedyne pytanie brzmi: w przypadku nowych obserwacji, dla których chcę przewidzieć wartości wyjściowe, w jaki sposób są one odpowiednio skalowane? Czy to by było scaled.new <- (new - mean(data)) / std(data)
?
r
regression
prediction
scales
SamuelNLP
źródło
źródło
y = y_esc * sd(y) + mean(y)
, ale myślę, że to zepsułoby właściwości modelu, więc czekam też na bardziej techniczną odpowiedź!Odpowiedzi:
Krótka odpowiedź na twoje pytanie brzmi: tak - wyrażenie na skalowane. Nowe jest poprawne (z wyjątkiem tego, że chciałeś
sd
zamiaststd
).Warto zauważyć, że skala ma opcjonalne argumenty, których można użyć:
Ponadto obiekt zwrócony przez skalę (scaled.data) ma atrybuty przechowujące zastosowane centrowanie numeryczne i zastosowane skalowania (jeśli istnieją), których można użyć:
Zaletą tego jest sytuacja, gdy oryginalne dane mają więcej niż jedną kolumnę, więc należy wziąć pod uwagę wiele średnich i / lub standardowych odchyleń.
źródło
scaled.new <- scale(new, use.attrs = scaled.data)