1.4 데이터 분할 (2)
계속해서 데이터 분할에서 중요한 개념인 부트스트래핑 메서드와 분산 대 편향의 트레이드 오프가 왜 발생하는 지, 훈련 세트 섞기에 대해서 알아보도록 하겠습니다.
1.4.3 부트스트래핑 메서드
교차 검증은 머신러닝 모델을 검증하는 좋은 전략이며 데이터 과학자로서 일상 활동에서 시도해야 합니다. 그러나 사용 가능한 다른 재표본(Resampling) 기술에 대해서도 알아야 합니다. 그것들 중 하나는 바로 부트스트래핑(Bootstrapping)입니다.
교차 검증은 어떠한 데이터 교체 없이 동작하지만, 부트스트래핑 접근 방식은 교체와 함께 동작합니다. 만일 교체를 사용하면 모집단 데이터 세트에서 여러 무작위 샘플을 추출하는 동안 동일한 관측치가 샘플 간에 중복될 수 있음을 의미합니다. 일반적으로 부트스트랩은 기존의 교차 검증 방식에서 하는 것처럼 모델을 검증하는 데 사용되지 않습니다. 이유는 간단합니다. 교체와 함께 동작하기 때문에 훈련에 사용된 동일한 관측치가 잠재적으로 테스트에도 사용될 수 있습니다. 이는 훈련 세트에서 이미 본 관측치를 예측할 때 추정치(estimator)가 정확할 가능성이 높기 때문에 모델 성능 지표가 부풀려지게 됩니다.
따라서, 부트스트래핑은 데이터를 처리하기 위해 재표본 가용성이 필요한 임베디드 방식으로 머신러닝 알고리즘에서 자주 사용됩니다. 이 컨텍스트에서 부트스트랩은 모델을 검증하는 데 사용되지 않고 모델을 생성하는 데 사용됩니다. 예를 들어, 랜덤 포레스트(Random Forest)는 모델 구축을 위해 내부적으로 부트스트래핑을 사용하는 알고리즘 중 하나입니다. 좋은 데이터 분할/샘플링 전략을 설계하는 것은 모델이나 알고리즘의 성공에 매우 중요합니다. 데이터를 분할하고, 각 분할에서 모델이 어떻게 수행되는지 확인하고, 이러한 분할이 모델이 사용될 실제 시나리오를 나타내는지 확인하기 위해 다양한 접근 방식을 제시해야 합니다.
1.4.4 분산 대 편향의 트레이드오프
모든 머신러닝 모델에는 오류가 포함되어야 합니다. 모델에서 찾을 수 있는 오류에는 편향(bias) 오류, 분산(variance) 오류 및 설명할 수 없는(unexplained) 오류의 세 가지 유형이 있습니다.
첫째, 편향은 예측치가 정답과 얼마나 멀리 떨어져 있는지 측정하는 것이며, 분산은 예측치들끼리의 차이로 측정할 수 있습니다. 따라서, 내부적으로 계산 방법은 관측치에서 평균을 뺀 값을 제곱하고, 그것을 모두 더한 후 전체 개수로 나눠서 구합니다. 즉, 차이값의 제곱의 평균입니다. 관측치에서 모 평균을 빼고 그것을 제곱한 값을 모두 더하여 전체 데이터 수 n으로 나눈 것입니다. 끝으로 설명할 수 없는 에러는 종종 문제의 맥락과 변수 간의 관계와 관련이 있으며 그것을 통제할 수 없습니다.
따라서, 편향 오류는 우리가 풀고자 하는 목표 함수를 학습하기 위해 모델이 취한 가정과 관련이 있습니다. 선형 알고리즘과 같은 일부 유형의 알고리즘은 일반적으로 모델 훈련 중에 많은 가정을 하기 때문에 해당 유형의 오류를 이월합니다. 예를 들어, 선형 모델은 데이터에 존재하는 관계가 선형이라고 가정합니다. 선형 회귀 및 로지스틱 회귀는 일반적으로 높은 편향을 포함하는 알고리즘 유형입니다. 반면에 의사 결정 트리는 데이터에 대해 더 적은 가정을 하고 편향을 덜 포함하는 알고리즘 유형입니다.
둘째, 분산은 모델이 다른 훈련 데이터에 대해 수행하는 추정치 차이와 관련됩니다. 분산이 높은 모델은 일반적으로 훈련 세트에 과대적합 됩니다. 의사 결정 트리는 일반적으로 훈련 세트의 세부 사항에 많이 의존하여 일반화에 실패하는 분산이 높은 알고리즘의 예이고, 선형/로지스틱 회귀는 분산이 낮은 알고리즘의 예입니다. 의사 결정 트리가 잘못된 추정치를 의미하지는 않습니다. 그것은 단지 훈련 중에 그것들을 가지치기(prune)로 최적화해야 한다는 것을 의미합니다.
그러므로 설명할 수 없는 오류를 제외하고 나머지 두 오류는 모델링 중에 제어할 수 있습니다. 일반적으로 하나가 다른 하나에 영향을 미치기 때문에 편향과 분산 오류 사이에 균형이 있다고 말합니다. 이 경우 편향을 높이면 분산이 감소하고 그 반대의 경우도 마찬가지입니다. 이를 분산 대 편향의 트레이드 오프라고 부릅니다. 즉, 모든 모델의 목표는 편향과 분산을 모두 최소화하는 것입니다. 그러나 이미 언급했듯이 각각은 서로 반대 방향으로 영향을 미칩니다.
의사결정 트리를 사용하여 이 절충안이 어떻게 작동하는지 알아보겠습니다. 의사 결정 트리는 비선형 알고리즘이며 종종 낮은 편향과 높은 분산을 포함합니다. 분산을 줄이기 위해 트리를 가지치기하고, 트리의 최대 허용 깊이인 max_depth 하이퍼파라미터를 10으로 설정할 수 있습니다. 그러면 더 일반적인 모델이 실행되어 분산이 줄어듭니다. 그러나 이러한 변경으로 인해 모델이 더 많은 가정을 하고 이제 더 일반적이기 때문에 편향이 증가합니다.
1.4.5 훈련 세트 섞기
이제 분산 및 데이터 분할이 무엇인지 알았으므로 훈련 데이터 세트의 요구 사항에 대해 조금 더 자세히 살펴보겠습니다. 테스트에서 데이터 셔플링과 관련된 질문을 찾을 가능성이 매우 큽니다. 이 프로세스는 학습 데이터 세트를 사용하여 알고리즘에 맞추기 시작하기 전에 학습 데이터 세트를 무작위화하는 것으로 구성됩니다.
데이터 셔플링은 알고리즘이 보다 일반화 가능한 모델을 만들어 분산을 줄이는 데 도움이 됩니다. 예를 들어, 훈련이 이진 분류 문제를 나타내고 대상 변수에 따라 정렬되며, 클래스 “0”에 속하는 모든 케이스가 먼저 나타난 다음 클래스 “1”에 속하는 모든 케이스가 나타나는 가정해 보겠습니다.
이 일괄 처리(batch processing)에 의존하는 일부 알고리즘인 정렬된 데이터에 알고리즘을 맞추면, 클래스 중 하나의 패턴에 대한 강한 전제가 필요합니다. 왜냐하면, 두 클래스를 모두 잘 나타내는 데이터의 무작위 배치를 생성할 수 없을 가능성이 매우 높기 때문입니다. 또한 알고리즘이 훈련 데이터에 대한 강한 전제를 구축하면 이를 변경하기 어려울 수 있습니다. 반면에 테스트 세트는 모델 성능을 확인하기 위해 추론 프로세스에서만 사용되므로 섞을 필요가 없습니다.
일부 알고리즘은 배치라고도 하는 청크(chunk)로 데이터를 피팅하여 훈련 프로세스를 실행할 수 있습니다. 이 접근 방식을 사용하면 전체 데이터 세트를 처리한 후에만 결정을 내리는 대신 각 데이터 배치를 처리한 후 부분적인 가정을 하기 때문에 모델이 더 자주 학습할 수 있습니다.
1.4.6 글을 마치며
지금까지 모델 구축, 검증 및 관리에 대해 이야기 했습니다. 모델의 기대치는 가장 간단한 설명을 제공하고 다른 모델과 비교할 때 최상의 결과에 맞는 모델을 말합니다. 예를 들어, 선형 회귀 모델을 생성하는 동안 10개의 피처를 더 추가하면 모델 성능이 0.001% 향상된다는 것을 알게 됩니다. 이 시나리오에서는 모델이 더 복잡해지기 때문에 이 성능 향상이 간결한 비용의 가치가 있는지 고려해야 합니다.
때로는 그만한 가치가 있지만 대부분은 그렇지 않습니다. 보통 회의적이며 비즈니스 사례에 따라 생각해야 합니다. 따라서, 모델은 해석 가능성(interpretability)을 직접 지원해야 합니다. 모델이 단순할수록 설명하기 쉽습니다. 그러나 해석 가능성과 예측 가능성 사이에는 간극이 발생합니다. 예측력에 초점을 맞추면 해석 가능성을 잃을 가능성이 높습니다. 다시 말하지만, 적절한 데이터 과학자의 경험과 사용 사례에서 더 나은 것을 선택하는 것이 중요합니다.