본문 바로가기

자격증/빅데이터 분석기사

[회귀] 1. 회귀모델 구현하기 - mtcars 데이터셋

 

 

mtcars : 32 개 자동차들의 디자인과 성능을 비교한 데이터

 

  • 훈련데이터 : 평가데이터 = 7 : 3 분할
  • 연비 (mpg) 를 예측하는 최적 모델 만들기 (RMSE 로 평가)

 

# 데이터 로드 및 확인
library(dplyr)
data(mtcars)
df <- mtcars
head(df)
summary(df)

 

# 훈련 데이터와 평가 데이터를 7:3 으로 분할한 후 연비(mpg) 를 예측하는 최적 모델을 만들고 RMSE로 평가 결과를 구하시오.
# train, test 분할
set.seed(3579)
idx <- sample(1:nrow(df),0.7*nrow(df))
train <- df[idx,]
test <- df[-idx,]

# 모델 적합 및 예측
# lm 함수를 이용하여 연비(mpg) 예측 모델을 생성하고, step 함수로 최적 모델을 생성한 후 최적의 변수를 선택한다.
model <- lm(mpg~.,train)
step(model,direction="backward")

 

 

변수 선택법 중 후진 소거법 적용 step(model,direction = "backward")

 

 

# m_step 함수에 lm 함수의 최적 변수를 선택한 후, 학습모델과 테스트 데이터로 예측하고, 
# 테스트 데이터로 예측한 모델의 RMSE 평가 결과를 구한다.
m_step <- lm(mpg~ hp + wt + qsec + am, train)
pred <- predict(m_step,test,type="response")

library(ModelMetrics)   # rmse() 함수 사용을 위한 라이브러리
rmse(test$mpg,pred)

 

 

RMSE () 함수 사용을 위한 라이브러리 : library(ModelMetrics)