그림 7-7처럼 관건은 주어진 데이터에서 어떤 행은 훈련 데이터(training data)로, 다른 행은 테스트 데이터(testing data)로 분류하는 프로세스일 것이다. 만약 이 과정을 주어진 데이터에서 행의 순서대로 사용한다면 예상치 못한 문제를 초래할 수 있다. 그래서 주어진 데이터의 행을 무작위로 선택하여 훈련 데이터를 만든다. 이때 사용되는 통계학의 개념이 바로 샘플링(sampling)이며, 전체 데이터에서 표본을 추출하는 과정을 의미한다.
샘플링에는 구체적으로 여러 종류가 있는데, 주어진 데이터에서 무작위로 추출하는 것을 단순 무작위 추출(simple random sampling)이라 한다. 이때 무작위로 추출하되, 한 번 추출된 숫자를 또 추출할 수 있는지의 여부에 따라 복원 추출과 비복원 추출로 나눌 수 있다. 이외에도 다양한 추출 방식이 있다. 값을 추출할 때 그 값이 갖는 범주 값을 고려하여 범주별로 층에서 무작위로 추출하는 것을 층화 무작위 추출(stratified random sampling)이라고 하며, 이중에서도 각 층에서 동일한 크기로 추출하는 동일배분법과 각 층의 크기에 비례하여 표본을 배분하는 비례배분법 등이 있다.
전체 데이터를 훈련 데이터와 테스트 데이터로 나누려면 비복원 단순 무작위 추출을 통해 훈련 데이터에 포함될 행을 무작위로 선택해야 한다. 이때 선택되지 않은 나머지 행은 테스트 데이터로 사용된다. 이러한 과정을 데이터 파티셔닝(data partitioning)이라고 하며, 일반적으로 7:3이나 8:2의 비율로 훈련 데이터와 테스트 데이터를 나눈다. 훈련 데이터로 찾아낸 직선식에 테스트 데이터의 X를 대입하면 Y가 ‘예측’된다. 다행히 테스트 데이터에 정답인 Y가 이미 있다. 이제 예측한 Y와 정답 Y를 비교하면 우리는 모형이 얼마나 잘 작동하는지를 가늠할 수 있다.