더북(TheBook)

저장된 X 데이터와 y 데이터에서 각각 정해진 비율(%)만큼 학습셋과 테스트셋으로 분리시키는 함수가 사이킷런의 train_test_split() 함수입니다. 따라서 다음과 같이 학습셋과 테스트셋을 만들 수 있습니다. 학습셋을 70%, 테스트셋을 30%로 설정했을 때의 예입니다.

from sklearn.model_selection import train_test_split

# 학습셋과 테스트셋을 구분합니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True)

test_size는 테스트셋의 비율을 나타냅니다. 0.3은 전체 데이터의 30%를 테스트셋으로 사용하라는 것으로, 나머지 70%를 학습셋으로 사용하게 됩니다. 이렇게 나누어진 학습셋과 테스트셋은 각각 X_train, X_test, y_train, y_test로 저장됩니다.

모델은 앞서 만든 구조를 그대로 유지하고 대신 모델에 테스트 함수를 추가하겠습니다. 만들어진 모델을 테스트셋에 적용하려면 model.evaluate() 함수를 사용하면 됩니다.

score = model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])

model.evaluate() 함수는 lossaccuracy, 두 가지를 계산해 출력합니다. 이를 score로 저장하고 accuracy를 출력하도록 범위를 정했습니다. 함수 내부에는 테스트셋 정보를 집어넣습니다.

이제 전체 코드를 실행해 보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.