자동화된 ML을 통해 데이터 과잉 맞춤 및 불균형 방지
과잉 맞춤 및 불균형 데이터는 기계 학습 모델을 빌드할 때 나타나는 일반적인 문제입니다. 기본적으로 Azure Machine Learning의 자동화된 ML 기능은 이러한 위험을 식별하는 데 도움이 되는 차트와 메트릭을 제공합니다. 이 문서에서는 자동화된 ML에서 모범 사례를 구현하여 일반적인 문제를 완화하는 방법을 설명합니다.
과잉 맞춤 식별
기계 학습에서 과잉 맞춤은 모델이 학습 데이터에 너무 잘 맞을 때 발생합니다. 따라서 모델은 보이지 않는 테스트 데이터에 대해 정확한 예측을 수행할 수 없습니다. 모델은 학습 데이터의 특정 패턴 및 노이즈를 기억하지만 실제 데이터를 예측할 만큼 충분히 유연하지는 않습니다.
다음에 나오는 학습된 모델 및 해당 학습과 테스트 정확도를 고려해 보세요.
모델 | 학습 정확도 | 테스트 정확도 |
---|---|---|
A | 99.9% | 95% |
B | 87% | 87% |
C | 99.9% | 45% |
모델 A: 이 모델에 대한 테스트는 모델 학습보다 약간 낮은 정확도를 생성합니다. 보이지 않는 데이터에 대한 테스트 정확도가 학습 정확도보다 낮으면 모델이 과잉 맞춤된다는 일반적인 오해가 있습니다. 그러나 테스트 정확도는 항상 학습 정확도보다 낮아야 합니다. 과잉 맞춤 데이터와 적절한 맞춤 데이터의 차이는 정확도가 얼마나 되는지 측정하기 위한 것입니다.
모델 A와 모델 B 비교: 모델 A는 테스트 정확도가 높기 때문에 더 나은 모델입니다. 테스트 정확도는 95%로 약간 낮지만, 과잉 맞춤이 존재한다는 것을 시사하는 유의미한 차이는 아닙니다. 모델 B는 학습 및 테스트 정확도가 유사하기 때문에 선호되지 않습니다.
모델 C: 이 모델은 과잉 맞춤의 명확한 사례를 나타냅니다. 학습 정확도가 높고 테스트 정확도가 낮습니다. 이러한 구분은 주관적이지만 문제 및 데이터에 대한 지식과 허용되는 오류 크기를 토대로 이루어집니다.
과잉 맞춤 방지
가장 심각한 경우, 과잉 맞춤 모델은 학습 중에 표시되는 기능 값을 조합하면 대상에 대해 항상 정확히 동일한 결과가 발생한다고 가정하게 됩니다. 데이터 과잉 맞춤을 방지하기 위해 기계 학습 모범 사례를 따르는 것이 좋습니다. 모델 구현에서 구성할 수 있는 몇 가지 방법이 있습니다. 자동화된 ML은 과잉 맞춤을 방지하기 위해 기본적으로 다른 옵션도 제공합니다.
다음 표에는 일반적인 모범 사례가 요약되어 있습니다.
모범 사례 | 구현 | 자동화된 ML |
---|---|---|
더 많은 학습 데이터 사용 및 통계 바이어스 제거 | X | |
대상 누출 방지 | X | |
더 적은 기능 통합 | X | |
정규화 및 하이퍼 매개 변수 지원 | X | |
모델 복잡성 제한 사항 적용 | X | |
교차 유효성 검사 사용 | X |
과잉 맞춤을 방지하기 위한 모범 사례 적용
다음 섹션에서는 기계 학습 모델 구현에서 과잉 맞춤을 방지하기 위해 사용할 수 있는 모범 사례를 설명합니다.
더 많은 데이터 사용
더 많은 데이터를 사용하는 것이 과잉 맞춤을 방지하는 가장 간단하고 좋은 방법이며, 이를 통해 대개 정확도가 높아지기도 합니다. 더 많은 데이터를 사용하는 경우 모델이 정확한 패턴을 기억하기가 더 어려워집니다. 모델은 더 많은 조건을 수용하기 위해 좀 더 유연한 솔루션에 도달해야 합니다. 또한 통계 바이어스를 인식하여 학습 데이터에 라이브 예측 데이터에 존재하지 않는 격리된 패턴이 포함되지 않도록 해야 합니다. 이 시나리오는 실시간 테스트 데이터와 비교할 때 과잉 맞춤이 존재할 수 있으므로 해결하기 어려울 수 있습니다.
대상 누출 방지
대상 누출도 비슷한 문제입니다. 학습 및 테스트 집합 간에 과잉 맞춤이 나타나지 않을 수 있지만 누수 문제는 예측 시점에 나타납니다. 대상 누출은 일반적으로 예측 시점에 없어야 하는 데이터에 액세스하여 학습하는 동안 모델이 "속임수를 쓸 때" 발생합니다. 월요일에 금요일의 상품 가격을 예측하는 모델의 경우를 예로 들어 보겠습니다. 기능에 목요일의 데이터가 실수로 포함된 경우 모델은 나중에 확인할 수 없으므로 예측 시점에 사용할 수 없는 데이터에 액세스할 수 있습니다. 대상 누출은 놓치기 쉬운 실수입니다. 이러한 실수는 문제에 대한 정확도가 비정상적으로 높은 곳에서 발생되는 경우가 많습니다. 주식가를 예측하려고 하며 95% 정확도로 모델을 학습하는 경우 기능에서 대상 누출이 발생할 가능성이 높습니다.
더 적은 기능 통합
기능을 제거하면 모델에서 특정 패턴을 기억하는 데 사용할 필드가 너무 많아지지 않고 보다 유연해지므로 과잉 맞춤을 방지하는 데 도움이 될 수 있습니다. 정량적으로 측정하기 어려울 수 있습니다. 기능을 제거하고 동일한 정확도를 유지할 수 있는 경우 모델이 더 유연해지며 과잉 맞춤 위험을 줄일 수 있습니다.
자동화된 ML 기능을 검토하여 과잉 맞춤 방지
다음 섹션에서는 과잉 맞춤을 방지하기 위해 자동화된 ML에서 기본적으로 제공하는 모범 사례를 설명합니다.
정규화 및 하이퍼 매개 변수 튜닝 지원
정규화는 복잡한 과잉 맞춤 모델에 패널티를 부여하여 비용 함수를 최소화하는 프로세스입니다. 다양한 유형의 정규화 함수가 있습니다. 일반적으로 모든 함수는 모델 계수 크기, 분산 및 복잡성에 불이익을 줍니다. 자동화된 ML은 과잉 맞춤을 제어하는 다른 모델 하이퍼 매개 변수 설정 조합으로 L1(Lasso), L2(Ridge) 및 ElasticNet(L1 및 L2를 동시에)를 사용합니다. 자동화된 ML은 모델이 규제되는 정도를 변경하고 최상의 결과를 선택합니다.
모델 복잡성 제한 사항 적용
또한 자동화된 ML은 과잉 맞춤을 방지하기 위해 명시적인 모델 복잡성 제한 사항을 구현합니다. 대부분의 경우 이 구현은 의사 결정 트리 또는 포리스트 알고리즘을 위한 것입니다. 개별 트리 최대 깊이는 제한되며 포리스트 또는 앙상블 기술에 사용되는 총 트리 수는 제한됩니다.
교차 유효성 검사 사용
CV(교차 유효성 검사)는 전체 학습 데이터의 여러 하위 세트를 가져오고 각 하위 세트에 대해 모델을 학습하는 프로세스입니다. 이 개념은 모델이 "운이 좋아" 하나의 하위 세트로도 정확도가 매우 높다는 것이지만, 많은 하위 세트를 사용할 경우 모델이 매번 높은 정확도를 얻지는 못합니다. CV를 수행할 때 유효성 검사 홀드아웃 데이터 세트를 제공하고, CV 겹(하위 집합 수)을 지정하면 자동화된 ML은 모델을 학습하고 하이퍼 매개 변수를 조정하여 유효성 검사 집합의 오류를 최소화합니다. 하나의 CV 겹은 과잉 맞춤될 수 있지만, 많은 CV 겹을 사용하면 최종 모델이 과잉 맞춤될 확률을 줄일 수 있습니다. 단점은 CV 하위 집합의 각 n에 대해 모델을 한 번씩 학습하기 때문에 CV를 사용하면 학습 시간이 길어지고 비용이 더 많이 든다는 것입니다.
참고 항목
교차 유효성 검사는 기본값으로 사용되지 않습니다. 이 기능은 자동화된 Machine Learning 설정에서 구성해야 합니다. 그러나 교차 유효성 검사를 구성하고 유효성 검사 데이터 세트를 제공한 후에는 프로세스가 자동으로 수행됩니다.
불균형 데이터를 사용하여 모델 식별
불균형 데이터는 기계 학습 분류 시나리오의 데이터에서 일반적으로 발견되며, 각 클래스에서 불균형 비율로 관찰되는 데이터를 나타냅니다. 이러한 불균형은 입력 데이터가 한 클래스 쪽으로 편향되어 학습된 모델이 해당 편향을 모방하게 되므로 모델의 정확성의 긍정적인 효과를 잘못 인식하게 할 수 있습니다.
또한 자동화된 ML 작업은 다음 차트를 자동으로 생성합니다. 이러한 차트는 모델 분류의 정확성을 이해하고 불균형 데이터의 영향을 받을 가능성이 있는 모델을 식별하는 데 도움이 됩니다.
차트 | 설명 |
---|---|
혼동 행렬 | 데이터의 실제 레이블에 대해 올바르게 분류된 레이블을 평가합니다. |
정밀도-재현율 | 발견된 데이터의 레이블 인스턴스 비율에 대해 올바른 레이블의 비율을 평가합니다. |
ROC 곡선 | 가양성 레이블 비율에 대해 올바른 레이블의 비율을 평가합니다. |
불균형 데이터 처리
기계 학습 워크플로우를 단순화하는 목표의 일환으로 자동화 ML은 불균형 데이터를 처리하는 데 도움이 되는 기본 제공 기능을 제공합니다.
자동화된 ML은 데이터 행의 가중치를 높이거나 낮추는 입력으로 가중치 열을 만들며, 이는 클래스의 "중요도"를 높이거나 낮추는 데 사용할 수 있습니다.
자동화된 ML에서 사용하는 알고리즘은 소수 클래스의 샘플 수가 다수 클래스의 샘플 수의 20% 이하일 때 불균형을 검색합니다. 소수 클래스는 샘플 수가 가장 적은 클래스를 의미하고 다수 클래스는 샘플 수가 가장 많은 클래스를 의미합니다. 그 후, 자동화된 Machine Learning은 하위 샘플링 데이터로 실험을 실행하여 클래스 가중치를 사용하면 이 문제가 해결되고 성능을 개선할 수 있는지 확인합니다. 이 실험을 통해 더 나은 성능이 확인되는 경우 이 해결 방법이 적용됩니다.
불균형 데이터를 보다 잘 처리하는 성능 메트릭을 사용합니다. 예를 들어 AUC_weighted는 해당 클래스를 나타내는 샘플의 상대적 수에 따라 모든 클래스의 기여도를 계산하는 기본 메트릭이므로 불균형에 대해 더 강력하게 대응합니다.
다음 기술은 자동화된 ML 외부의 불균형 데이터를 처리하는 다른 옵션입니다.
클래스 불균형도 다시 샘플링합니다. 더 작은 클래스를 고해상도로 처리하거나 더 큰 클래스를 저해상도로 처리할 수 있습니다. 이러한 방법을 사용하려면 처리 및 분석을 위한 전문 기술이 필요합니다.
불균형 데이터에 대한 성능 메트릭을 검토하세요. 예를 들어, F1 점수는 정밀도 및 재현율의 조화 평균입니다. 정밀도는 분류자의 정확도를 측정하며, 정밀도가 높을수록 가양성이 적다는 것을 의미합니다. 재현율은 분류자의 완전성을 측정하며, 재현율이 높을수록 가음성이 적습니다.