데이터 분할 구성 요소

이 문서에서는 Azure Machine Learning 디자이너의 구성 요소에 대해 설명합니다.

데이터 분할 구성 요소를 사용하여 데이터 세트를 두 개의 고유 집합으로 나눕니다.

이 구성 요소는 데이터를 학습 및 테스트 집합으로 구분해야 하는 경우에 유용합니다. 데이터를 나누는 방법을 사용자 지정할 수도 있습니다. 일부 옵션은 데이터의 임의화를 지원합니다. 다른 항목은 특정 데이터 형식 또는 모델 형식에 맞게 조정됩니다.

구성 요소 구성

분할 모드를 선택하기 전에 모든 옵션을 읽어 필요한 분할 유형을 결정합니다. 분할 모드를 변경하면 다른 모든 옵션이 다시 설정될 수 있습니다.

  1. 디자이너에서 데이터 분할 구성 요소를 파이프라인에 추가합니다. 이 구성 요소는 샘플 및 분할 범주의 데이터 변환에서 찾을 수 있습니다.

  2. 분할 모드: 데이터 형식 및 분할 방법에 따라 다음 모드 중 하나를 선택합니다. 분할 모드마다 옵션이 다릅니다.

    • 행 분할: 데이터를 두 부분으로 나누려면 이 옵션을 사용합니다. 각 분할에 넣을 데이터의 백분율을 지정할 수 있습니다. 기본적으로 데이터는 50/50으로 나뉩니다.

      각 그룹에서 행 선택을 임의로 지정하고 계층화된 샘플링을 사용할 수도 있습니다. 계층화된 샘플링에서 두 결과 데이터 세트 간에 값을 동일하게 할당하려는 데이터의 단일 열을 선택해야 합니다.

    • 정규식 분할: 값에 대한 단일 열을 테스트하여 데이터 세트를 분할하려는 경우 이 모드를 사용합니다.

      예를 들어 감정을 분석하는 경우 텍스트 필드에 특정 제품 이름이 있는지 확인할 수 있습니다. 그런 다음, 데이터 세트를 대상 제품 이름이 있는 행과 대상 제품 이름이 없는 행으로 나눌 수 있습니다.

    • 상대식 분할: 숫자 열에 조건을 적용하려는 경우 언제든지 이 옵션을 사용합니다. 이 수는 날짜/시간 필드, 나이 또는 달러 금액을 포함하는 열 또는 백분율이 될 수 있습니다. 예를 들어 항목의 비용을 기준으로 데이터 세트를 분할하거나, 나이 범위를 기준으로 사용자를 그룹화하거나, 달력 날짜별로 데이터를 구분할 수 있습니다.

행 분할

  1. 디자이너에서 데이터 분할 구성 요소를 파이프라인에 추가하고 분할하려는 데이터 세트를 연결합니다.

  2. 분할 모드의 경우 행 분할을 선택합니다.

  3. 첫 번째 출력 데이터 세트의 행 비율: 이 옵션을 사용하여 첫 번째(왼쪽) 출력으로 이동할 행 수를 결정합니다. 다른 모든 행은 두 번째(오른쪽) 출력으로 이동합니다.

    비율은 첫 번째 출력 데이터 세트로 전송되는 행의 백분율을 나타내므로 0에서 1 사이의 10진수를 입력해야 합니다.

    예를 들어 값으로 0.75를 입력하는 경우 데이터 세트를 분할 75/25가 됩니다. 이 분할에서 행의 75%가 첫 번째 출력 데이터 세트로 전송됩니다. 나머지 25%는 두 번째 출력 데이터 세트로 전송됩니다.

  4. 데이터 선택 영역을 두 그룹으로 임의 지정하려면 임의 분할 옵션을 선택합니다. 이 옵션은 학습 및 테스트 데이터 세트를 만들 때 선호되는 옵션입니다.

  5. 임의 시드: 임의 분할이 false로 설정된 경우 이 매개 변수는 무시됩니다. 그러지 않으면 음수가 아닌 정수 값을 입력하여 사용할 인스턴스의 의사 난수 시퀀스를 시작합니다. 이 기본 초기값은 난수를 생성하는 모든 구성 요소에서 사용됩니다.

    초기값을 지정하면 결과를 재현할 수 있습니다. 분할 작업 결과를 반복해야 하는 경우 난수 생성기의 초기값을 지정해야 합니다.

  6. 층화 분할: 이 옵션을 True로 설정하면 두 출력 데이터 세트에 층 열 또는 층화 키 열 값에 대한 대표적인 샘플이 포함됩니다.

    층화 샘플링을 사용하면 각 출력 데이터 세트가 각 대상 값의 거의 동일한 백분율을 얻도록 데이터를 분할합니다. 예를 들어 학습 및 테스트 집합이 결과 또는 일부 다른 열(예: 성별)과 관련하여 대략적으로 균형을 맞추도록 할 수 있습니다.

  7. 파이프라인을 제출합니다.

정규식 선택

  1. 데이터 분할 구성 요소를 파이프라인에 추가하고 분할하려는 데이터 세트에 입력으로 연결합니다.

  2. 분할 모드의 경우 정규식 분할을 선택합니다.

  3. 정규식 상자에 유효한 정규식을 입력합니다.

    정규식은 정규식에 대한 Python 구문을 따라야 합니다.

  4. 파이프라인을 제출합니다.

    제공하는 정규식에 따라 데이터 세트는 두 개의 행 집합(표현식과 일치하는 값이 있는 행과 나머지 모든 행)으로 나뉩니다.

다음 예제에서는 정규식 옵션을 사용하여 데이터 세트를 나누는 방법을 보여 줍니다.

단일 단어

이 예제에서는 Text 열의 Gryphon 텍스트를 포함하는 모든 행을 첫 번째 데이터 세트에 넣습니다. 다른 행을 데이터 분할의 두 번째 출력에 넣습니다.

    \"Text" Gryphon  

Substring

이 예제에서는 데이터 세트의 두 번째 열 내의 모든 위치에서 지정된 문자열을 찾습니다. 이 위치는 인덱스 값 1로 여기에 설명되어 있습니다. 일치 항목 찾기에서는 대/소문자를 구분합니다.

(\1) ^[a-f]

첫 번째 결과 데이터 세트에는 인덱스 열이 a, b, c, d, e, f 문자 중 하나로 시작하는 모든 행이 포함됩니다. 다른 모든 행은 두 번째 출력으로 전달됩니다.

상대 식 선택

  1. 데이터 분할 구성 요소를 파이프라인에 추가하고 분할하려는 데이터 세트에 입력으로 연결합니다.

  2. 분할 모드의 경우 상대 식을 선택합니다.

  3. 관계식 상자에 단일 열에 대해 비교 작업을 수행하는 식을 입력합니다.

    숫자 열의 경우:

    • 열에는 날짜 및 시간 데이터 형식을 포함하여 숫자 데이터 형식의 숫자가 포함됩니다.
    • 식은 열 이름을 하나까지만 참조할 수 있습니다.
    • AND 작업에는 앰퍼샌드 문자(&)를 사용합니다. OR 작업에는 파이프 문자(|)를 사용합니다.
    • 다음과 같은 연산자가 지원됩니다. <, >, <=, >=, ==, !=
    • ()를 사용하여 작업을 그룹화할 수 없습니다.

    문자열 열의 경우:

    • 다음과 같은 연산자가 지원됩니다. ==, !=
  4. 파이프라인을 제출합니다.

    이 표현식은 데이터 집합을 두 개의 행 집합(조건에 맞는 값이 있는 행과 나머지 모든 행)으로 나눕니다.

다음 예제에서는 데이터 분할 구성 요소의 상대 식 옵션을 사용하여 데이터 세트를 나누는 방법을 보여 줍니다.

달력 연도

연도별로 데이터 집합을 나누는 것이 일반적인 시나리오입니다. 다음 식은 Year 열의 값이 2010보다 큰 모든 행을 선택합니다.

\"Year" > 2010

날짜 식은 데이터 열에 포함된 모든 날짜 부분을 고려해야 합니다. 데이터 열의 날짜 형식이 일치해야 합니다.

예를 들어 mmddyyyy 형식을 사용하는 날짜 열에서 식은 다음과 같아야 합니다.

\"Date" > 1/1/2010

열 인덱스

다음 식은 열 인덱스를 사용하여 30 이하이지만 20과는 같지 않은 값이 포함된 데이터 집합의 첫 번째 열에 있는 모든 행을 선택하는 방법을 보여 줍니다.

(\0)<=30 & !=20

다음 단계

Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.