본문 바로가기
AI/데이터 전처리

[데이터 전처리 - 4] 훈련 세트와 테스트 세트 나누기

by Nhahan 2022. 4. 16.

훈련 세트와 테스트 세트가 필요한 이유는 기본적으로 머신러닝의 성능을 평가할 때 훈련 세트와 테스트 세트가 동일한 환경이어야 때문이다.

하지만 같은 조건의 두 데이터세트를 구하는 것보다 현재 존재하는 데이터 세트를 나눠서 훈련 세트와 테스트 세트를 만드는게 더 쉽기 때문에 보통 후자의 방법을 많이 사용한다.

 

우리가 계속 써왔던 데이터세트 (실수로 Age값을 날려먹었지만 중요한건 아님)

 


 

데이터세트를 분할하기 위해서 caTools라는 라이브러리의 도움을 받을건데 설치를 위해 다음과 같은 커맨드를 입력해준다.

install.packages('caTools')

사용을 위해 Pakages 탭에서 caTools 체크박스 클릭

 

 

 

설치 후 활성화 했다면, 항상 같은 분할값을 얻기 위해 seed 설정을 해주고, 분할해준다.

set.seed(123) # ()에 원하는 시드값을 입력
split = sample.split(dataset$Purchased, SplitRatio = 0.8)
# Purchased 컬럼을 기준으로 잡은건 이 값이 종속변수(결과값)이기 때문

 

그리고 이 스플릿 변수를 확인하면 아래와 같은 결과가 나온다.

우측 상단의 Environment 탭에서도 확인 가능하다.

 

 

 

이제 훈련 세트와 테스트 세트를 이렇게 분할된 결과를 나눠 정해주면

training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)

 

아래와 같은 결과를 확인할 수 있다.

SplitRatio에서 정해준 것처럼 2:8로 잘 분할된 것을 볼 수 있다.

 

 


지금 발견했는데 중간에 뭔가 잘못 커맨드를 날려서 Age값이 날아간 걸 확인했다.

근데 어쨌든 어떻게 하느냐하는 방법과 과정이 중요한거니까 패쓰

댓글