시작하기무료로 시작하기

입력 변환: "하키 스틱"

이 연습 문제에서는 주택의 크기(연면적) 지표로부터 가격을 예측하는 모델을 만들어 보겠습니다. 미리 로드된 houseprice 데이터셋에는 다음 열이 있습니다:

  • price: 주택 가격(단위: $1000)
  • size: 연면적

산점도를 보면 데이터가 상당히 비선형입니다. 작은 집에서는 가격이 거의 평평하다가, 크기가 커질수록 가파르게 상승하는 일종의 "하키 스틱" 형태죠. 이런 관계를 표현할 때는 2차식이나 3차식 같은 함수 형태가 종종 잘 맞습니다. pricesize의 제곱에 물리적으로 연관되어 있어서가 아니라, 2차식이 관측된 관계를 닫힌형식으로 근사한 것일 수 있다는 점에 유의하세요.

scatterplot

이제 크기의 제곱을 사용해 가격을 예측하는 모델을 학습하고, 훈련 데이터에서의 적합을 확인해 보겠습니다.

^는 상호작용을 표현할 때도 쓰이므로, I() 함수(docs)를 사용해 x^2 표현을 그대로(as is) 처리하세요. 즉, x와 자기 자신 간의 상호작용이 아니라 x의 제곱으로 해석되도록 합니다.

exampleFormula = y ~ I(x^2)

이 연습은 강의의 일부입니다

R로 하는 Supervised Learning: 회귀

강의 보기

연습 안내

  • 제곱된 sizeprice를 설명하는 수식 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")
코드 편집 및 실행