데이터 정규화

중요

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

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

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

데이터 집합 값을 표준 범위로 제한하도록 숫자 데이터 크기 조정

범주: 데이터 변환/크기 조정 및 축소

참고

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

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

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 데이터 정규화 모듈을 사용하여 정규화를 통해 데이터 세트를 변환하는 방법을 설명합니다.

정규화는 기계 학습을 위한 데이터 준비의 일환으로 자주 적용되는 기술입니다. 정규화의 목표는 값 범위 차이의 왜곡이나 정보 손실 없이 공통 스케일을 사용하도록 데이터 세트의 숫자 열 값을 변경하는 것입니다. 일부 알고리즘에서 데이터를 올바르게 모델링하려는 경우에도 정규화가 필요합니다.

예를 들어 입력 데이터 세트에 값이 0에서 1 사이인 열과 값이 10,000에서 100,000 사이인 다른 열이 있다고 가정합니다. 숫자 ‘스케일’의 차이가 크면 모델링하는 동안 값을 기능으로 결합할 때 문제가 발생할 수 있습니다.

‘정규화’는 모델에서 사용되는 모든 숫자 열에 적용된 스케일 내에서 값을 유지하는 동시에 원본 데이터의 일반적인 배포와 비율을 유지하는 새 값을 만들어 이 문제를 방지합니다.

이 모듈은 숫자 데이터를 변환하기 위한 몇 가지 옵션을 제공합니다.

  • 모든 값을 0~1 스케일로 변경하거나 절대값 대신 백분위수 순위로 표시하여 값을 변환할 수 있습니다.
  • 단일 열 또는 동일한 데이터 집합의 여러 열에 정규화를 적용할 수 있습니다.
  • 실험을 반복하거나 다른 데이터에 동일한 정규화 단계를 적용해야 하는 경우 단계를 정규화 변환으로 저장하고 스키마가 동일한 다른 데이터 세트에 적용할 수 있습니다.

경고

일부 알고리즘에서는 모델을 학습하기 전에 데이터를 정규화해야 합니다. 다른 알고리즘에서는 고유 데이터 크기 조정 또는 정규화를 수행합니다. 따라서 예측 모델을 빌드하는 데 사용할 기계 학습 알고리즘을 선택하는 경우 학습 데이터에 정규화를 적용하기 전에 알고리즘의 데이터 요구 사항을 검토해야 합니다.

데이터 정규화를 구성하는 방법

이 모듈을 사용하여 한 번에 하나의 정규화 방법만 적용할 수 있습니다. 따라서 선택한 모든 열에 동일한 정규화 방법이 적용됩니다. 다른 정규화 방법을 사용하려면 두 번째 데이터 정규화 인스턴스를 사용합니다.

  1. 실험에 데이터 정규화 모듈을 추가합니다. Machine Learning Studio(클래식)의 데이터 변환 아래에 있는 크기 조정 및 축소 범주에서 모듈을 찾을 수 있습니다.

  2. 모두 숫자로 이루어진 열이 하나 이상 포함된 데이터 세트를 연결합니다.

  3. 열 선택기를 사용하여 정규화할 숫자 열을 선택합니다. 개별 열을 선택하지 않으면 기본적으로 입력의 모든 숫자 형식 열이 포함되고 선택한 모든 열에 동일한 정규화 프로세스가 적용됩니다.

    따라서 정규화되지 않아야 하는 숫자 열을 포함할 경우 이상한 결과가 나타날 수 있습니다. 항상 신중하게 열을 검사합니다.

    숫자 열이 검색되지 않으면 열 메타데이터를 검사하여 열의 데이터 형식이 지원되는 숫자 형식인지 확인합니다.

    특정 형식의 열이 입력으로 제공되도록 하려면 데이터를 정규화하기 전에 데이터 세트에서 열 선택 모듈을 사용합니다.

  4. 선택 시 상수 열에 0 사용: 임의의 숫자 열에 변경되지 않는 단일 값이 포함된 경우 이 옵션을 선택합니다. 이렇게 하면 해당 열이 정규화 작업에서 사용되지 않습니다.

  5. 변환 메서드 드롭다운 목록에서 선택한 모든 열에 적용할 단일 수학 함수를 선택합니다.

    • Zscore: 모든 값을 z 점수로 변환합니다.

      열의 값은 다음 수식을 사용하여 변환됩니다.

      normalization using z-scores

      각 열에 대해 평균과 표준 편차를 개별적으로 계산합니다. 모집단 표준 편차를 사용합니다.

    • MinMax: 최소-최대 노멀라이저는 선형으로 모든 기능을 [0,1] 간격으로 다시 스케일링합니다.

      [0,1] 간격으로 크기를 재조정하는 작업은 최소값이 0이 되도록 각 기능의 값을 이동한 다음, 새 최대값(원래 최대값과 최소값의 차이)으로 나누어 수행합니다.

      열의 값은 다음 수식을 사용하여 변환됩니다.

      normalization using the min-max function

    • Logistic: 열의 값은 다음 수식을 사용하여 변환됩니다.

      formula for normalization by logistic function

    • LogNormal: 이 옵션은 모든 값을 로그 정규 스케일로 변환합니다.

      열의 값은 다음 수식을 사용하여 변환됩니다.

      formula log-normal distribution

      여기서 μ 및 σ는 배포 매개 변수로, 데이터를 통해 경험상 각 열의 가능성이 가장 높은 추정치로 개별적으로 컴퓨팅됩니다.

    • TanH: 모든 값이 쌍곡 탄젠트로 변환됩니다.

      열의 값은 다음 수식을 사용하여 변환됩니다.

      normalization using the tanh function

  6. 실험을 실행하거나 데이터 정규화 모듈을 두 번 클릭하고 선택한 실행을 선택합니다.

결과

데이터 정규화 모듈은 다음 두 개의 출력을 생성합니다.

  • 변환된 값을 보려면 모듈을 마우스 오른쪽 단추로 클릭하고 변환된 데이터 세트를 선택한 다음 시각화를 클릭합니다.

    기본적으로 현재 위치에서 값이 변환됩니다. 변환된 값을 원래 값과 비교하려면 열 추가 모듈을 사용하여 데이터 세트를 다시 조합하고 열을 나란히 봅니다.

  • 동일한 정규화 방법을 다른 유사한 데이터 세트에 적용할 수 있도록 변환을 저장하려면 모듈을 마우스 오른쪽 단추로 클릭하고 변환 함수를 선택한 다음 변환으로 저장을 클릭합니다.

    왼쪽 탐색 창의 변환 그룹에서 저장된 변환을 로드하고 변환 적용을 사용하여 동일한 스키마를 가진 데이터 세트에 적용할 수 있습니다.

기계 학습에서 정규화가 사용되는 방법의 예는 Azure AI 갤러리를 참조하세요.

  • 신용 위험 예측: 이 샘플에서 정규화는 클래스 열, 신용 위험 점수를 제외한 모든 숫자 데이터에 적용됩니다. 이 예제에서는 모든 숫자 기능을 0-1 범위 내의 값으로 변환하는 tanh 변환을 사용합니다.

기술 정보

이 모듈은 방법 섹션에 나열된 표준 정규화 메서드만 지원하며 행렬 정규화 또는 기타 복잡한 변환을 지원하지 않습니다.

사용자 지정 정규화 방법을 만들어야 하는 경우 R 스크립트 실행 또는 Python 스크립트 실행 모듈을 사용하여 변환을 계산하고 적용할 수 있습니다.

정규화를 적용하는 알고리즘

일반적인 규모를 사용하도록 기능을 정규화하는 것은 많은 기계 학습 알고리즘에 대한 일반적인 요구 사항입니다.

  • 선형 분류 알고리즘에서 인스턴스는 다차원 공간의 벡터로 표시됩니다. 행 데이터 값의 범위는 매우 다양하므로 일부 목표 함수는 정규화하지 않으면 올바르게 작동하지 않습니다. 예를 들어, 기능 중 하나에 광범위한 값이 있는 경우 지점 간 거리는 이 특정 기능을 통해 제어됩니다.

    따라서 각 기능이 최종 거리에 비례하여 대략적으로 적용되도록 숫자 기능을 정규화해야 합니다. 그러면 상당한 속도 향상과 정확도 증가의 혜택을 얻을 수 있습니다.

  • 로지스틱 회귀평균 Perceptron 알고리즘을 사용하는 경우 기본적으로 기능은 학습 전에 정규화됩니다.

추가 정보 및 리소스

데이터에 적합한 정규화 유형을 잘 모르는 경우 다음 리소스를 참조하세요.

  • 내 데이터에 대한 모듈 권장: Azure ML 팀의 구성원이 작성한 이 사용자 지정 모듈은 데이터 세트를 평가하고 데이터 정리 및 크기 조정 단계를 권장합니다.

  • 기능 크기 조정: Wikipedia의 이 문서에서는 숫자 데이터를 정규화하는 데 사용되는 기본 방법을 설명합니다.

  • 데이터 마이닝에 대한 데이터 준비 는 많은 데이터 준비 단계를 자세히 다룹니다. 데이터 정규화에 대한 논의는 7장을 참조하세요.

예상 입력

Name Type Description
데이터 세트 데이터 테이블 입력 데이터 세트

모듈 매개 변수

Name 범위 Type 기본값 Description
변환 방법 any TransformationMethods ZScore 크기 조정 시 사용되는 수학 방법을 선택합니다.
변환할 열 any ColumnSelection NumericAll 선택한 변환을 적용해야 하는 모든 열을 선택합니다.

출력

Name Type Description
변환된 데이터 집합 데이터 테이블 변환된 데이터 집합
변환 함수 ITransform 인터페이스 다른 데이터 집합에 적용할 수 있는 변환 함수의 정의입니다.

예외

예외 설명
오류 0001 데이터 세트의 지정된 열 중 하나 이상을 찾을 수 없으면 예외가 발생합니다.
오류 0003 하나 이상의 입력이 null이거나 비어 있으면 예외가 발생합니다.
오류 0017 지정한 열 중 하나 이상의 형식이 현재 모듈에서 지원되지 않으면 예외가 발생합니다.
오류 0020 모듈에 전달된 데이터 세트 중 일부의 열 수가 너무 적으면 예외가 발생합니다.
오류 0021 모듈에 전달된 데이터 세트 중 일부의 행 수가 너무 적으면 예외가 발생합니다.

Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.

API 예외 목록은 MACHINE LEARNING REST API 오류 코드를 참조하세요.

추가 정보

확장 및 축소