다음을 통해 공유


SMOTE

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Synthetic Minority Oversampling을 사용하여 데이터 집합에서 적게 발생하는 예제 수 증가

범주: 데이터 변환/조작

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 SMOTE 모듈을 사용하여 기계 학습에 사용되는 데이터 세트의 미달 사례 수를 늘리는 방법을 설명합니다. 기존 사례를 단순히 복제하는 것보다 SMOTE를 사용하는 것이 드문 사례의 수를 늘리는 더 좋은 방법입니다.

불균형한 데이터 세트에 SMOTE 모듈을 연결 합니다. 데이터 집합이 불균형한 이유는 여러 가지가 있습니다. 대상으로 지정한 범주가 모집합에서 매우 드물거나, 단순히 데이터를 수집하기가 어려울 수 있습니다. 일반적으로 분석하려는 클래스 가 과소 표현되는 경우 SMOTE를 사용합니다.

이 모듈에서는 지정한 백분율에 따라 원래 샘플이 포함된 데이터 집합과 추가 가상 소수 샘플 수를 반환합니다.

SMOTE에 대한 자세한 정보

SMOTE가상 소수 민족 오버샘플링 기술을 의미합니다. 데이터 집합의 사례 수를 균형 있는 방식으로 늘리는 통계 기술입니다. 이 모듈은 입력으로 제공된 기존 소수 사례에서 새 인스턴스를 생성하는 방식으로 작동합니다. 이 SMOTE 구현은 다수 사례 수를 변경하지 않습니다.

새 인스턴스는 기존 소수 사례의 복사본이 아닙니다. 대신 알고리즘은 각 대상 클래스 및 가장 가까운 인접 항목에 대한 기능 공간 샘플을 가져와 대상 사례의 기능을 인접 항목의 기능과 결합하는 새로운 예제를 생성합니다. 이 방법을 사용하면 각 클래스에 사용할 수 있는 기능이 증가하고 샘플이 더 일반적이게 됩니다.

SMOTE는 전체 데이터 세트를 입력으로 사용하지만, 소수 사례의 백분율만 늘립니다. 예를 들어 사례의 1%에만 대상 값 A(소수 클래스)가 있고 사례의 99%에 B 값이 있는 불균형 데이터 세트가 있다고 가정합니다. 소수 사례의 비율을 이전 백분율의 두 배로 늘리려면 모듈의 속성에 SMOTE 백분율 을 200으로 입력합니다.

적은 수의 데이터 집합에서 SMOTE를 사용하여 작동 방식을 확인하는 것이 좋습니다. 다음 예제에서는 Machine Learning Studio(클래식)에서 사용할 수 있는 헌혈 데이터 세트를 사용합니다.

실험에 데이터 세트를 추가하고 데이터 세트의 출력 에서 시각화 를 클릭하면 데이터 세트의 748개 행 또는 사례 중 클래스 0의 570건(76%)과 클래스 1의 178건(24%)이 있음을 알 수 있습니다. 이것은 몹시 불균형하지는 않지만, 클래스 1은 혈액을 기증한 사람들을 나타내므로 이러한 행에는 모델링하려는 기능 공간이 포함됩니다.

사례 수를 늘리려면 다음과 같이 100의 배수를 사용하여 SMOTE 백분율 값을 설정할 수 있습니다.

클래스 0 클래스 1 total
원래 데이터 집합

(SMOTE 백분율 = 0에 해당)
570

76%
178

24%
748
SMOTE 백분율 = 100 570

62%
356

38%
926
SMOTE 백분율 = 200 570

52%
534

48%
1104
SMOTE 백분율 = 300 570

44%
712

56%
1282

경고

SMOTE를 사용하여 사례 수를 늘리더라도 더 정확한 모델이 생성되는 것은 아닙니다. 사례 추가가 모델에 미치는 영향을 보려면 다른 백분율, 다른 기능 집합 및 다른 수의 가장 인접한 사항을 사용하여 실험해 보아야 합니다.

SMOTE 구성 방법

  1. 실험에 SMOTE 모듈을 추가합니다. 데이터 변환 모듈의 조작 범주에서 모듈을 찾을 수 있습니다.

  2. 강화하려는 데이터 세트를 커넥트. 특정 열만 사용하거나 일부 열을 제외하여 새 사례를 빌드하기 위한 기능 공간을 지정하려면 데이터 세트 모듈에서 열 선택 모듈을 사용하여 SMOTE를 사용하기 전에 사용하려는 열을 격리합니다.

    그렇지 않으면 SMOTE 를 사용하여 새 사례를 만드는 것은 입력으로 제공하는 모든 열을 기반으로 합니다.

  3. 레이블 또는 대상 클래스를 포함하는 열이 다음과 같이 표시되는지 확인합니다.

    레이블 열이 없는 경우 메타데이터 편집 모듈을 사용하여 클래스 레이블이 포함된 열을 선택하고 필드 드롭다운 목록에서 레이블을 선택합니다.

  4. SMOTE 모듈은 레이블 열에서 소수 클래스를 자동으로 식별한 다음 소수 클래스에 대한 모든 예제를 가져옵니다.

  5. SMOTE 백분율 옵션에서 출력 데이터 세트에 있는 소수 사례의 대상 백분율을 나타내는 정수를 입력합니다. 예:

    • 0(%) 입력합니다. SMOTE 모듈은 입력으로 제공한 것과 정확히 동일한 데이터 세트를 반환하며 새 소수 사례를 추가하지 않습니다. 이 데이터 세트에서 클래스 비율은 변경되지 않았습니다.

    • 100(%)을 입력합니다. SMOTE 모듈은 새 소수 사례를 생성하여 원래 데이터 세트에 있던 동일한 수의 소수 사례를 추가합니다. SMOTE는 대부분의 사례 수를 늘리지 않으므로 각 클래스의 사례 비율이 변경되었습니다.

    • 200(%)을 입력합니다. 모듈에서 소수 사례 비율을 원래 데이터 세트의 두 배로 만듭니다. 이로 인해 소수 사례 수가 전보다 두 배로 늘어나지는 않습니다. 대신, 대부분의 경우 수가 동일하게 유지되는 방식으로 데이터 세트의 크기가 증가하고 원하는 백분율 값과 일치할 때까지 소수 사례 수가 증가합니다.

    참고

    SMOTE 백분율에는 100의 배수만 사용합니다.

  6. 가장 가까운 인접 항목 수 옵션을 사용하여 새 사례를 빌드할 때 SMOTE 알고리즘에서 사용하는 기능 공간의 크기를 결정합니다. 가장 인접한 항목은 일부 대상 사례와 매우 비슷한 데이터 행(사례)입니다. 두 사례 사이의 거리는 가중치가 적용된 모든 기능의 벡터를 결합하여 측정됩니다.

    • 가장 인접한 항목 수를 늘리면 더 많은 사례에서 기능을 얻을 수 있습니다.
    • 가장 인접한 항목 수를 낮게 유지하면 원래 샘플의 기능과 매우 유사한 기능을 사용할 수 있습니다.
  7. 동일한 데이터로 동일한 실험의 실행에 대해 동일한 결과를 확인하려면 임의 시드 텍스트 상자에 값을 입력합니다. 그렇지 않으면 실험이 배포될 때 프로세서 클록 값에 따라 모듈이 임의 시드를 생성하므로 실행에 비해 약간 다른 결과가 발생할 수 있습니다.

  8. 실험을 실행합니다.

    모듈의 출력은 원래 행과 소수의 경우 추가된 행을 포함하는 데이터 세트입니다.

추가된 새 행을 파악하려면 SQL 변환 적용 또는 데이터 조인 모듈을 사용할 수 있습니다.

기술 정보

  • SMOTE 모듈을 사용하는 모델을 게시할 때 웹 서비스로 게시되기 전에 예측 실험에서 SMOTE를 제거합니다. 그 이유는 SMOTE가 학습 중에 모델을 개선하기 위한 것이며 점수 매기기를 위한 것이 아니기 때문입니다. 게시된 예측 실험에 SMOTE 모듈이 포함되어 있으면 오류가 발생할 수 있습니다.

  • SMOTE를 적용하기 전에 누락된 값 정리 또는 기타 변환을 적용하여 데이터를 수정하는 경우 더 나은 결과를 얻을 수 있는 경우가 많습니다.

  • 일부 연구자들은 SMOTE가 텍스트 분류 또는 유전체학 데이터 세트에 사용되는 데이터와 같은 고차원 또는 스파스 데이터에 효과적인지 여부를 조사했습니다. 이 백서에는 고차원 클래스 불균형 데이터에 대한 Blagus 및 Lusa: SMOTE와 같은 경우 SMOTE를 적용하는 이론적 유효성과 효과에 대한 좋은 요약이 있습니다.

    SMOTE가 데이터 세트에 효과적이지 않은 경우 고려할 수 있는 다른 접근 방식에는 소수 사례를 과도하게 샘플링하거나 대부분의 사례를 과소 샘플링하는 다양한 방법뿐만 아니라 클러스터링, 배깅 또는 적응형 증폭을 사용하여 학습자를 직접 돕는 앙상블 기술이 포함됩니다.

예상 입력

Name 유형 Description
샘플 데이터 테이블 샘플 데이터 집합

모듈 매개 변수

Name 범위 Type 기본값 설명
SMOTE 백분율 >=0 정수 100 100의 배수인 과다 샘플링 정도입니다.
가장 인접한 항목 수 >=1 정수 1 새로운 사례에 대한 기능을 그릴 가장 인접한 항목 수입니다.
무작위 초기값 모두 정수 0 난수 생성기의 초기값입니다.

출력

Name 유형 설명
테이블 데이터 테이블 원래 샘플과 추가 수의 가상 소수 클래스 샘플이 포함된 데이터 테이블 입니다. 새로운 샘플 수는 (smotePercent/100)*T입니다. 여기서 T는 소수 클래스 샘플의 수입니다.

참고 항목

샘플링 및 분할
전체 모듈 목록