입력 변환: "하키 스틱"
이 연습 문제에서는 주택의 크기(연면적) 지표로부터 가격을 예측하는 모델을 만들어 보겠습니다. 미리 로드된 houseprice 데이터셋에는 다음 열이 있습니다:
price: 주택 가격(단위: $1000)size: 연면적
산점도를 보면 데이터가 상당히 비선형입니다. 작은 집에서는 가격이 거의 평평하다가, 크기가 커질수록 가파르게 상승하는 일종의 "하키 스틱" 형태죠. 이런 관계를 표현할 때는 2차식이나 3차식 같은 함수 형태가 종종 잘 맞습니다. price가 size의 제곱에 물리적으로 연관되어 있어서가 아니라, 2차식이 관측된 관계를 닫힌형식으로 근사한 것일 수 있다는 점에 유의하세요.

이제 크기의 제곱을 사용해 가격을 예측하는 모델을 학습하고, 훈련 데이터에서의 적합을 확인해 보겠습니다.
^는 상호작용을 표현할 때도 쓰이므로, I() 함수(docs)를 사용해 x^2 표현을 그대로(as is) 처리하세요. 즉, x와 자기 자신 간의 상호작용이 아니라 x의 제곱으로 해석되도록 합니다.
exampleFormula = y ~ I(x^2)
이 연습은 강의의 일부입니다
R로 하는 Supervised Learning: 회귀
연습 안내
- 제곱된
size로price를 설명하는 수식fmla_sqr를 작성하고 출력하세요. fmla_sqr를 사용해 데이터에 모델model_sqr을 적합하세요.- 비교를 위해
price ~ size수식으로 선형 모델model_lin도 적합하세요. - 빈칸을 채워서 다음을 수행하세요.
- 두 모델에서 훈련 데이터에 대한 예측을 만듭니다.
pivot_longer()를 사용해 예측을 하나의 열pred로 피벗합니다.- 두 모델의 예측을 데이터와 함께 그래프로 비교하세요. 어느 쪽이 더 잘 맞나요?
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# houseprice is available
summary(houseprice)
# Create the formula for price as a function of squared size
(fmla_sqr <- ___)
# Fit a model of price as a function of squared size (use fmla_sqr)
model_sqr <- ___
# Fit a model of price as a linear function of size
model_lin <- ___
# Make predictions and compare
houseprice %>%
mutate(pred_lin = ___(___), # predictions from linear model
pred_sqr = ___(___)) %>% # predictions from quadratic model
pivot_longer(cols = c('pred_lin', 'pred_sqr'), names_to = 'modeltype', values_to = 'pred') %>% # pivot the predictions
ggplot(aes(x = size)) +
geom_point(aes(y = ___)) + # actual prices
geom_line(aes(y = ___, color = modeltype)) + # the predictions
scale_color_brewer(palette = "Dark2")