'균형'데이터 세트 또는 '대표'데이터 세트를 사용해야합니까?


48

나의 '머신 러닝'과제는 양성 인터넷 트래픽과 악성 트래픽을 분리하는 것입니다. 실제 시나리오에서 인터넷 트래픽의 대부분 (예 : 90 % 이상)은 양성입니다. 따라서 모델 훈련을 위해 유사한 데이터 설정을 선택해야한다고 생각했습니다. 그러나 나는 모델을 훈련시키기 위해 "클래스 밸런싱"데이터 접근 방식을 사용하여 양성 및 악성 트래픽의 동일한 수의 인스턴스를 암시하는 연구 논문을 보았습니다.

일반적으로 기계 학습 모델을 구축하는 경우 실제 문제를 나타내는 데이터 세트를 선택해야하거나 모델을 작성하는 데 더 적합한 균형 잡힌 데이터 세트를 사용해야합니까 (일부 분류자가 클래스 불균형에 적합하지 않기 때문에) 나에게 알려지지 않은 다른 이유로 인해)?

누군가가에 빛을 더 있나 장점단점 의 선택 모두와 방법을 선택할 가고 어느 하나를 결정?

답변:


38

대답은 사용 사례에 따라 다릅니다. 내 경험을 바탕으로 :

  • 반드시 예측하지 않고 데이터를 설명하는 대표 모델을 만들려는 경우 대표 데이터 샘플을 사용하는 것이 좋습니다.
  • 예측 모델, 특히 AUC 또는 순위 순서를 측정하여 성능이 우수하고 기본 ML 프레임 워크 (예 : 의사 결정 트리, SVM, Naive Bayes 등)를 사용하려는 계획을 세우려면 균형 잡힌 데이터 셋의 프레임 워크. 클래스 불균형에 관한 많은 문헌은 랜덤 언더 샘플링 (주로 소수 클래스의 크기로 대다수 클래스를 다운 샘플링) 할 경우 성능이 향상 될 수 있음을 발견했습니다.
  • 예측 모델을 작성하고 있지만 고급 프레임 워크 (예 : 래퍼를 통해 샘플링 매개 변수를 결정하거나 클래스 동등성으로 샘플링하는 배깅 프레임 워크의 수정을 결정하는 것)를 사용하는 경우 대표 샘플을 다시 공급하고 알고리즘은 훈련을 위해 데이터의 균형을 관리합니다.

2
대표 모델을 만들려고하는 경우, 반드시 예측하지 않고 데이터를 설명 하는 모델입니다. 누가 예측 하지 않는 모델을 구축합니까? 당신을 거기에 도착하지 않았다 ...
pnp

8
비지도 학습은 반드시 예측하기에 적합하지 않은 모델을 구축하는 예입니다. 경우에 따라 데이터를 탐색하거나 요약 할 수도 있습니다.
DSea

1
샘플의 균형을 맞추는 것이 더 안전하지만 샘플링 가중치를 수집하여 나중에 필요할 경우 데이터를 다시 가중치를 부여 할 수 있습니다. @pnp 많은 사회 과학자들이 이론을 확인하기 위해 예측이 아닌 모델을 만듭니다.
shadowtalker

균형 모델을 모방하기 위해 가중치 관측을 사용하는 균형 모델과 대표 모델을 어떻게 비교합니까?
JenSCDC

1
AUC는 클래스 불균형의 영향을받지 않으므로 모델이 무작위로 선택된 양성 클래스보다 임의로 선택된 양성 클래스의 순위가 높아질 가능성이 있습니다. 나는 일반적인 목적에 대한 귀하의 조언에 동의하지 않습니다. 대표 표본 (예 : 단순 무작위 표본)이있는 경우 대표 표본으로 남겨 두어야합니다.
Matthew Drury

8

항상 시나리오에 달려 있다고 생각합니다. 대표 데이터 세트를 사용하는 것이 항상 해결책은 아닙니다. 트레이닝 세트에 1000 개의 부정적인 예와 20 개의 긍정적 인 예가 있다고 가정하십시오. 분류자를 수정하지 않으면 알고리즘이 모든 새 예제를 음수로 분류하는 경향이 있습니다. 일부 시나리오에서는 문제가 없지만 대부분의 경우 누락 된 포스트 예제 비용은 높으므로 이에 대한 해결책을 찾아야합니다.

이러한 경우 비용에 민감한 기계 학습 알고리즘을 사용할 수 있습니다. 예를 들어 의료 진단 데이터 분석의 경우.

요약하면 분류 오류는 동일한 비용이 아닙니다!


7

항상 두 가지 방법 모두를 시도하고 예상 성능을 최대화하는 방법을 유지하는 솔루션이 있습니다.

귀하의 경우, 일부 오탐의 비용으로 오탐을 최소화하는 것을 선호한다고 가정합니다. 따라서 이전에 강한 음에 대해 분류자를 편향시키고 훈련 세트의 부정적인 예 수를 줄임으로써 불균형을 해결하려고합니다.

그런 다음 정밀 / 호출, 감도 / 특성 또는 전체, 불균형, 데이터 세트에 적합한 기준을 계산하여 축소 된 데이터로 모델을 구축하는 동안 실제 데이터에 존재하는 중요한 패턴을 무시하지 않도록합니다.


4

운영 시나리오와 교육 시나리오를 분리하십시오.

운영 시나리오는 분류 기준이 측정되는 시나리오입니다. 이것은 당신이 잘 수행 해야하는 곳입니다. 사용에는이 시나리오를 나타내는 데이터 세트가 있어야합니다.

교육 시나리오는 운영 시나리오에서 잘 작동하는 분류기를 작성하기 위해 수행하는 모든 작업입니다.

두 시나리오에서 데이터 세트의 특성이 동일한 경우가 많으므로이를 구별 할 필요가 없습니다. 예를 들어, 온라인 상점이 있으므로 향후 사용을 잘 수행하기 위해 과거 사용을 훈련하는 데 사용합니다. 그러나 훈련하는 동안 운영 시나리오를 나타내는 것과 다른 데이터 집합을 사용할 수 있습니다. 실제로, 잠을 자고 분류기를 꿈꾸며 운영 시나리오에서 유효성을 검사하면 (이 단계는 깨어 난 후에 수행해야 함) 일반적인 머신 러닝 과정을 마치고 나면 좋습니다.

데이터 세트가 불균형 할 때 운영 시나리오와 교육 시나리오의 구별이 중요해집니다. 대부분의 알고리즘은 이러한 데이터 세트에서 제대로 작동하지 않습니다.

따라서 주저하지 말고 두 개의 데이터 세트를 사용하십시오. 훈련에 균형 잡힌 데이터 세트를 사용할 수 있습니다. 완료되면 운영 데이터 세트의 분류자를 검증하십시오.


3

고려해야 할 두 가지 문제가 있다고 생각합니다. 훈련 시간과 예측 정확도.

간단한 예를 들어 보자. 다변량 정규 분포를 갖는 두 개의 클래스가 있다고 가정하십시오. 기본적으로 각 클래스 평균과 클래스 공분산을 추정해야합니다. 이제 당신이 걱정하는 첫 번째 것은 클래스 평균의 차이에 대한 추정입니다. 그러나 성능은 최악의 평균 추정의 정확도에 의해 제한됩니다. 소수점 이하 1 자리로 추정됩니다. 따라서 모든 데이터를 사용하는 것은 컴퓨팅 리소스를 낭비하는 것입니다. 대신 더 일반적인 클래스를 언더 샘플링하고 클래스를 적절히 가중치를 부여 할 수 있습니다. (이러한 컴퓨팅 리소스는 다른 입력 변수 등을 탐색하는 데 사용될 수 있습니다)

이제 두 번째 문제는 예측 정확도입니다. 알고리즘마다 알고리즘에 따라 다른 오류 메트릭이 사용되므로 사용자의 목표에 맞거나 맞지 않을 수 있습니다. 예를 들어, 로지스틱 회귀는 전체 확률 오류에 불이익을 주므로 대부분의 데이터가 한 클래스에서 온 경우 식별하려고 시도하지 않고 해당 클래스의 정확한 확률 추정치 (예 : 90 대 95 % 확률)를 향상 시키려고합니다. 드문 클래스. 이 경우, 희귀 클래스를 강조하기 위해 가중치를 재 지정하려고합니다 (그리고 나서 확률 추정치가 재정렬되도록 바이어스 값을 조정하여 추정치 조정).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.