GO THE DISTANCE!

Data analysis using python_D5. 10th of Sep, Fri.

by makeany

Ch02. 고객별 연간 지출액 예측 - 05. Train Test Split

가지고 있는 데이터 중에 일부를 떼어내서 테스트를 위한 데이타로 사용하고 남은 데이타를 가지고 모델을 트레이닝 한다는 . X 독립변수, y 종속변수. 머신러닝을 돌려서 linear regression 만들어 낸다고 하면 테이터의 분포를 가장 나타내는 선을 하나 컴퓨터가 긋는다. 

  

과연 새로운 데이터를 만났을때 노란색 선이 데이터를 가장 설명해 있는 선이 것인가? 빨간 삼각형이 새로운 데이터라고 했을때 녹색선이 모든 데이터를 아울러서 가장 표현해 있는 선이 것이다. 파란색 데이터는 노란색 선이 가장 나타내 주지만 빨간 삼각형 데이터와 함께 있을 노란색 선은 설명해 없다. 가지고 있는 데이터를 모두 트레이닝 하는데 써버리면 새로운 데이터가 올때 까지 기다려야 한다. 막상 모델을 가지고 있는 타이밍은 늦어진다. 그래서 가지고 있는 데이터에서 20, 30 퍼센트를 일단 떼어내 놓고 나머지 남아있는 70, 80 퍼센트의 데이터를 가지고 트레이닝을 시킨 다음 예제에서 보는 처럼 노란색 선을 얻고 나면 아까 떼어 놓았던 20, 30퍼센트의 데이터셋을 가지고 와서 마치 새로운 데이터인 마냥 한번 집어넣고 테스트 해본다. 따로 떼어놓 데이터셋은 우리가 모든 인포메이션을 알고 있기 때문에 노란색 선에다가 집어 넣어보고 이게 맞는 맞는지 확인할 있다. 모델의 결과가 트레이닝 셋의 결과에만 맞는 것인지, 아니면 미래에 다가올 새로운 데이터에게도 적용이 되는지 유추해 있다. 이러한 데이터의 분리를 파이썬 코드를 통해서 있다.

  

이걸 정리 해보면 이렇게 나타낼 있겠다. 

 

그렇다면 자료를 분리해야 하는데 파이썬에서 제공하는 펑션을 이용한다. 그래서 모듈을 불러오기 위해서 아래의 명령을 사용한다.

  

사이킷런의 하위 모듈인 model_selection 써주고 최종모듈인 train_test_split 써준다.

사이킷런은 트리구조로 되어있다. 계층구조.

 

'X_train, X_test,y_train, y_test =' 데이터를 스플릿할 똑같이 써주면 된다.

  

대문자 X 독립변수, y 종속변수. train train dataset, test test dataset 의미한다. 4 각각의 데이타로 나누어 준다.

 

X, y 값을 지정해주면 알아서 4개로 나누어 진다. 하지만 지금 우린 X, y 값을 가지고 있지 않다. 여기에서 Yearly Amount Spent y 값이다. 나머지4개는 X . 

일단 X 값을 지정. 

  

불러오면 지정되어 있는 것을 있다.

 

y 값도 지정.

 

y 지정 확인.

 

X_train 해보면 375 rows train 데이터로 잡힌다. 전체 데이터의 2/3 잡힘. 

 

데이터가 만개 이상은 되어야 . 너무 적으면 문제. random_state 가급적 써주는 습관을 들인다. random_state 숫자는 원하는 숫자를 쓰지만 다른 숫자를 쓰면 다른 결과값을 얻는다.

 

 

블로그의 정보

막만들자!

makeany

활동하기