Page 15 -
P. 15
실무에서 접하는 실세계 데이터셋은 대체로 정리되지 않아 지저분하다. 데이터가 불완전하거나
여러 로우(row)와 칼럼(column)에 걸쳐 결측값이 있을 수 있으며, 결측값은 다양한 방법으로 처리
할 수 있다. 가장 쉬운 방법은 결측값이 있는 로우나 칼럼을 그냥 버리는 것이다. 하지만 데이터 1
를 상당량 잃을 수 있으므로 실용성이 떨어진다. 숫자 변수에 결측값이 있다면 변수 값의 평균으
로 결측값을 대신할 수도 있다. 이 방식은 데이터셋을 보존하므로 이전 방법보다 낫다. 하지만 결
측값을 평균값으로 채우면 데이터 분포에 영향을 주며 머신 러닝 모델에도 악영향을 미칠 수 있 머신 러닝과 신경망 개론
다. 또 다른 방법은 다른 변수 값을 바탕으로 결측값을 예측하는 것이다. 하지만 데이터셋의 편향
(bias)을 가중시킬 수 있어 신중해야 한다.
데이터 전처리의 마지막 단계로, 데이터셋을 훈련 데이터셋과 테스트 데이터셋으로 나누는 작업
이 필요하다. 머신 러닝 모델은 훈련 데이터셋만 사용해 만들고, 모델 성능이 만족스러우면 테스
트 데이터셋을 사용해 모델을 평가한다. 모델을 훈련할 때 테스트 데이터셋을 전혀 사용하지 않는
것이 매우 중요하다. 이로써 모델 성능을 편향 없이 측정하고 실세계에서 어느 정도 성능을 낼지
예상할 수 있다.
데이터 전처리가 끝나면 탐색적 데이터 분석(Exploratory Data Analysis, EDA) 단계로 넘어간다.
EDA는 데이터 시각화를 활용해 데이터에 숨겨진 통찰을 찾아내는 과정이다. EDA를 통해 새로
운 특징 변수(feature)를 찾아내거나(이 과정을 특징 엔지니어링(feature engineering)이라고도 부른
다) 도메인 지식을 머신 러닝 모델에 반영한다.
데이터 전처리와 EDA 과정을 마치면 마지막 모델 구축(model building) 단계로 넘어간다. 앞서 언
급했듯이 다양한 머신 러닝 알고리즘을 사용해 모델을 만들 수 있으며, 직면한 문제에 따라 알고
리즘 선택도 달라진다. 하지만 책에서는 신경망에 집중한다. 모델 구축 단계에서는 초매개변수
(hyperparameter)를 튜닝하는 과정이 필요할 때가 많다. 적절한 초매개변수를 지정하면 모델 성능
을 크게 개선할 수 있다. 책의 실습 프로젝트를 진행하면서 여러 신경망의 다양한 초매개변수를
살펴볼 것이다. 모델 훈련을 마치면 테스트 데이터셋을 사용해 모델 성능을 최종 평가할 수 있다.
이처럼 머신 러닝 워크플로는 여러 중간 단계로 이뤄지며, 각 단계가 모델 성능 전반에 중요한 영
향을 미친다. 여기서 파이썬의 장점은 편리한 오픈 소스 라이브러리를 사용해 머신 러닝 워크플로
전체를 구현하고 실행할 수 있다는 것이다. 책이 제공하는 복잡한 신경망 예제를 처음부터 하나씩
만들면서 머신 러닝 워크플로의 각 단계를 파이썬으로 구현해 볼 것이다.
27
신경망교과서_07.indd 27 2020-05-19 오전 9:04:30