왜 우리는 데이터 불균형을 처리해야합니까?


12

데이터 불균형을 처리해야하는 이유 를 알아야 합니다. 업 샘플링 또는 다운 샘플링 또는 Smote를 사용하여 문제를 해결하는 방법과 다양한 방법을 알고 있습니다.

예를 들어, 100 명 중 1 %의 희귀 질환이 있고 훈련 세트에 대해 균형 잡힌 데이터 세트를 결정했다고 가정 해 보겠습니다. 50/50 샘플 기계가 환자의 50 %가 질병? 비율은 100의 1이지만

  1. 왜 데이터 불균형을 처리해야합니까?
  2. 저울을 설정하기 위해 권장되는 비율은 무엇입니까

나는 그 질문을 좋아한다. 이유를 이해하는 것이 매우 중요합니다.
DaL

A가 교차 검증의 문제와 관련 참조 stats.stackexchange.com/questions/312780/...

답변:


8

소수 클래스를 찾는 값이 대다수를 찾는 것보다 훨씬 높은 경우 불균형 데이터 세트를 처리해야합니다.

인구의 1 %가 희귀 질환을 앓고 있다고 가정 해 봅시다. 건강한 사람이 아프거나 아픈 사람이 건강하다고 말하는 데 동일한 비용을 할당한다고 가정 해보십시오. 모두가 건강하고 99 %의 정확도를 얻고 일찍 집에 돌아 간다는 모델을 제공하십시오. 이러한 모델의 문제점은 정확도는 높지만 원하는 것은 아닐 것입니다. 대부분의 경우 건강에 좋은 사람을 불필요한 검사로 보내기 (무거운 양성에서 거짓 양성)를 두려워하는 것보다 질병을 앓고있는 사람들을 찾기 원합니다 (무게에서 거짓으로 부정적). 실제 건강 문제에서 체중 사이의 비율은 쉽게 1에서 1,000 사이 일 수 있습니다.

분포의 불균형은 대부분의 알고리즘이 적절한 솔루션을 찾는 데 실패합니다.

분포의 균형이 최적의 솔루션이 아니라는 것이 맞습니다. 실제로 균형 분포에 대해 훈련 된 알고리즘은 알고리즘이 평가 될 자연 분포에 적합하지 않습니다. 내가 가장 좋아하는 방법은 여기에서 볼 수 있듯이 다시 적용하는 것 입니다. 토론은 여기를 참조 하십시오 .

다른 문제에 대한 비율을 설정하면 동일한 문제가 발생하므로 작동하지 않습니다.

Smote 는 다른 방식으로 작동하지만 시도했을 때 제대로 작동하지 않지만 문제에 적합 할 수 있습니다.


그래서 대부분의 알고리즘이 자연 분포에 맞지 않더라도 균형 잡힌 데이터에서 잘 작동하기 때문에 데이터 균형을 잡는 것이 더 낫다는 것을 이해합니까?
sara

"오류 비용이 표본 분포에 맞지 않을 때"이 문장을 자세히 설명 할 수 있습니까? 나는 그것을 잘 얻지 못했습니다
새라

1
첫 번째 의견에 대한 답변 : 불균형 데이터 세트는 대다수를 반환함으로써 알고리즘이 좋은 결과를 얻도록 이끌 것입니다. 소수에 더 관심이 있다면 문제가 될 것입니다. 따라서 균형 조정은 알고리즘이 소수에 더 많은 가중치를 부여하도록하는 방법입니다. 그러나 일단 균형을 맞추면 열차 분포와 테스트 분포가 다르므로 모델을 테스트 분포에 맞게 다시 조정해야합니다 (제안한 방법과 동일).
DaL

두 번째 의견에 대한 답변 : 사실, 그 요점은 약간 불분명했습니다. 나는 대답을 편집했다. 지금은 분명합니까?
DaL

예, 훈련 및 테스트 배포가 동일해야 함을 이해하므로 훈련 세트를 50 50 비율로 균형 조정 한 후 테스트 세트를 50 50으로 설정하는 것이 해결책이되지 않습니까?
sara

4
  • 짧은 답변:

당신은 클래스 불균형 다룰 필요가 있기 때문에 경우 / 가 (눈에 보이지 않는 데이터) 모델 더 나은한다. "더 나은"은 스스로 정의해야하는 것입니다. 정확성 일 수도 있고, 비용 일 수도 있고, 실제 긍정적 인 비율 일 수도 있습니다.

  • 긴 대답 :

계급 불균형에 대해 이야기 할 때 이해해야 할 미묘한 뉘앙스가 있습니다. 즉, 다음과 같은 이유로 데이터가 불균형입니까?

  1. 데이터 분포 자체가 불균형

어떤 경우에는 한 클래스가 다른 클래스보다 훨씬 더 많이 발생합니다. 그리고 괜찮습니다. 이 경우 특정 실수가 다른 실수보다 비용이 많이 드는지 확인해야합니다. 이것은 환자에서 치명적인 질병을 탐지하고 누군가가 테러리스트인지 알아내는 전형적인 예입니다. 이것은 짧은 답으로 되돌아갑니다. 어떤 실수가 다른 실수보다 비용이 많이 든다면, 더 높은 비용을 주어 실수를 "처벌"하는 것이 좋습니다. 따라서 더 나은 모델은 더 낮은 비용을 갖습니다. 모든 실수가 나쁘다면 비용에 민감한 모델을 사용해야하는 실질적인 이유는 없습니다.

또한 비용에 민감한 모델을 사용하는 것이 불균형 데이터 세트에만 국한되지는 않습니다. 데이터가 완벽하게 균형 잡힌 경우 이러한 모델을 사용할 수 있습니다.

  1. 데이터의 실제 분포를 나타내지 않습니다.

때로는 데이터의 실제 분포를 나타내지 않기 때문에 데이터가 "불균형"입니다. 이 경우 한 클래스의 "너무 많은"예제와 다른 클래스의 "너무 작은"예제가 있으므로 모델이 한 클래스에 비해 과도 / 부족하지 않도록해야합니다. 이 수업 중

한 실수가 다른 실수보다 나쁜 경우가 아닐 수 있으므로 비용을 사용하는 것과 다릅니다. 보이지 않는 데이터가 학습 한 데이터와 동일한 분포를 가지지 않으면 편향되어 모델에 도움이되지 않습니다.

훈련 데이터를 제공하고 목표가 무언가가 빨간색인지 파란색인지 추측하는 것입니다. 파란색을 빨간색으로 또는 빨간색으로 잘못 생각하더라도 큰 차이는 없습니다. 훈련 데이터에는 실제 상황에서 10 % 만 발생하는 90 %의 빨간색 인스턴스가 있습니다. 모델을 개선하려면이를 처리해야합니다.


매우 정교한 답변. "모델이 저렴하여 모델이 더 좋으면 불균형을 처리하는 것"의 의미에 대한 예를 통해 더 자세히 설명 할 수 있습니까? 모델 비용이 저렴한 경우 불균형을 처리해야하는 이유는 무엇입니까?
새라

내 답변을 조금만 편집하면 더 명확합니다. 내가 의미하는 바는 다음과 같습니다. "저렴한 모델을 사용하여 모델이 더 우수하다고 생각되면 불균형을 처리하면 비용이 줄어 듭니다."
Valentin Calomme
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.