학습 데이터 준비

이 페이지에서는 학습 데이터를 AutoML Tables로 가져오기 전에 준비하는 방법을 설명합니다.

소개

학습 데이터의 품질은 생성하는 모델의 효율성에 상당한 영향을 주며, 나아가 모델에서 반환한 예측의 품질에도 영향을 줍니다. 업로드한 데이터는 수정할 수 없으므로 가져온 학습 데이터를 변경해야 하는 경우 소스 데이터를 업데이트한 후 다시 가져와야 합니다.

AutoML Tables가 데이터를 해석하고 사용하는 방식을 알면 정제되고 효과적인 데이터를 업로드할 수 있습니다.

문제 이해하기

효과적인 학습 데이터를 만드는 첫 단계는 문제가 제대로 정의되었으며 필요한 예측 결과를 산출하는지 확인하는 것입니다. 머신러닝을 처음 사용한다면, AutoML Tables가 다루는 문제 유형을 검토하고 어떤 유형의 모델을 만들지 결정해야 합니다. AutoML Tables가 지원하는 문제 유형을 자세히 알고 싶다면 문제 유형을 참조하세요.

데이터세트에 포함할 데이터 결정

이제 학습 데이터에 포함할 데이터를 결정해야 합니다. 경우에 따라 이미 비즈니스 데이터에 있는 테이블을 사용해도 되지만, 가장 효과적인 학습 데이터를 만들기 위해 다양한 소스의 데이터를 조합하거나, 일부 데이터를 변환하거나, 일부 열을 삭제해야 할 수도 있습니다.

학습 데이터 요구사항

학습 데이터는 다음 요구사항을 준수해야 합니다.

  • 데이터 크기는 100GB 이하여야 합니다.

  • 예측할 값(타겟 열)을 반드시 포함해야 합니다.

    데이터에 이 열이 없으면 AutoML Tables는 학습 데이터를 원하는 결과와 연결하지 못합니다. 이 열의 데이터 유형이 모델의 유형을 결정합니다. 자세히 알아보기

  • 열은 최소 2개에서 1,000개까지 있어야 합니다.

    열 하나는 타겟이어야 하고, 모델 학습에 사용할 수 있는 특성이 1개 이상 있어야 합니다. 학습 데이터에 열이 3개 이상 있는 것이 좋습니다.

  • 행은 최소 1,000개에서 200,000,000개까지 있어야 합니다.

    데이터 세트에 있는 특성 수에 따라 1,000개의 행은 고성능 모델을 학습시키기에 부족할 수 있습니다. 자세히 알아보기

학습 데이터 기반의 추가 특성

일부 AutoML Tables 기능은 특정 데이터가 있어야 학습 데이터에 포함될 수 있습니다.

다른 데이터 권장사항을 알고 싶다면 학습 데이터 만들기 관련 권장사항을 참조하세요.

가져오기 소스 준비

모델 학습 데이터는 두 가지 방법으로 AutoML Tables에 제공할 수 있습니다.

사용하는 소스는 데이터를 저장하는 방법과 데이터의 크기 및 복잡도에 따라 달라집니다. 데이터 세트의 크기가 작고 더 복잡한 데이터 유형이 필요 없다면 CSV가 더 쉬운 방법입니다. 배열과 구조체가 포함된 대형 데이터세트라면 BigQuery를 사용해야 합니다.

위의 두 가져오기 소스의 데이터는 다음 요구사항을 충족해야 합니다.

  • 1,000~200,000,000개의 행
  • 2~1,000개의 열
  • 100GB 이하의 크기

BigQuery

BigQuery 테이블은 US 또는 EU 위치에 있는 멀티 리전 BigQuery 데이터세트를 사용해야 합니다. BigQuery 테이블과 해당 데이터 소스의 위치(다를 수 있음)에 따라 아래 표에 나와 있는 권한 업데이트를 수행해야 합니다. 권한 변경은 홈 프로젝트(AutoML Tables가 있는 프로젝트) 또는 외부 프로젝트에 필요할 수 있습니다.

테이블 유형 테이블 위치 데이터 소스 위치 추가할 역할
기본 BigQuery 테이블 홈 프로젝트 해당 없음 없음
기본 BigQuery 테이블 해외 프로젝트 해당 없음 해외 프로젝트의 경우 BigQuery Data Viewer. 자세히 알아보기
BigQuery 뷰 동일 프로젝트 해당 없음 없음
BigQuery 뷰 다른 프로젝트 해당 없음 해외 프로젝트의 경우 BigQuery Data Viewer. 자세히 알아보기
Bigtable 기반의 외부 BigQuery 데이터 소스 홈 프로젝트 홈 프로젝트 홈 프로젝트의 경우 Bigtable Reader. 자세히 알아보기
Bigtable 기반의 외부 BigQuery 데이터 소스 홈 프로젝트 해외 프로젝트 해외 프로젝트의 경우 Bigtable Reader. 자세히 알아보기
Bigtable 기반의 외부 BigQuery 데이터 소스 해외 프로젝트 해외 프로젝트 해외 프로젝트의 경우 BigQuery ReaderBigtable Reader. 자세히 알아보기
Cloud Storage 기반의 외부 BigQuery 데이터 소스 홈 프로젝트 홈 프로젝트 없음
Cloud Storage 기반의 외부 BigQuery 데이터 소스 홈 프로젝트 해외 프로젝트 해외 프로젝트의 경우 Storage Object Viewer. 자세히 알아보기
Cloud Storage 기반의 외부 BigQuery 데이터 소스 해외 프로젝트 해외 프로젝트 해외 프로젝트의 경우 Storage Object ViewerBigQuery Data Viewer. 자세히 알아보기
Google 스프레드시트 기반의 외부 BigQuery 데이터 소스 홈 프로젝트 해당 없음 스프레드시트 파일을 AutoML 서비스 계정과 공유합니다. 자세히 알아보기
Google 스프레드시트 기반의 외부 BigQuery 데이터 소스 해외 프로젝트 해당 없음 해외 프로젝트의 경우 BigQuery Reader. 스프레드시트 파일을 AutoML 서비스 계정과 공유합니다..

BigQuery 테이블의 스키마는 지정하지 않아도 됩니다. AutoML Tables는 데이터를 가져올 때 테이블의 스키마를 자동으로 추론합니다.

학습 데이터의 위치를 지정하는 BigQuery URI는 다음 형식을 따라야 합니다.

bq://<project_id>.<dataset_id>.<table_id>

URI는 다른 특수문자는 포함할 수 없습니다.

BigQuery 데이터 유형과 이러한 유형이 AutoML Tables에 매핑되는 방식을 알아보려면 BigQuery 테이블을 참조하세요. BigQuery 외부 데이터 소스 사용에 대한 자세한 내용은 외부 데이터 소스 소개를 참조하세요.

CSV 파일

CSV 파일 요구사항

CSV 파일은 Cloud Storage 또는 로컬 컴퓨터에 있을 수 있으며, 다음 요구사항을 준수해야 합니다.

  • 첫 번째 파일의 첫 번째 줄은 열 이름을 포함한 헤더여야 합니다. 후속 파일의 첫 번째 행이 헤더와 같으면 이 행도 헤더로 처리되고, 그렇지 않은 경우에는 데이터로 처리됩니다.
  • 열 이름에는 영숫자 문자 또는 밑줄(_)을 사용할 수 있습니다. 열 이름은 밑줄로 시작할 수 없습니다.
  • 구분 기호 문자는 쉼표(',')여야 합니다.
  • 각 파일은 10GB를 초과할 수 없습니다.

    여러 파일을 포함할 수도 있지만 최대 용량은 100GB로 제한됩니다.

CSV 데이터의 스키마는 지정하지 않아도 됩니다. AutoML Tables는 데이터를 가져올 때 테이블의 스키마를 자동으로 추론하며, 열 이름에 헤더 행을 사용합니다.

CSV 파일 형식 및 데이터 유형에 관한 자세한 내용은 CSV 파일을 참조하세요.

Cloud Storage 버킷 요구사항

Cloud Storage에서 데이터를 가져올 경우 데이터는 다음 요구사항을 충족하는 버킷에 있어야 합니다.

로컬 컴퓨터에서 데이터를 가져올 경우 다음 요구사항을 충족하는 Cloud Storage 버킷이 있어야 합니다.

AutoML Tables는 데이터를 가져오기 전에 이 버킷을 스테이징 영역으로 사용합니다.

로컬 컴퓨터에서 CSV 파일을 가져오려면 Google Cloud Console을 사용해야 합니다.

데이터 분할 사용 방법

데이터세트를 사용해 모델을 학습시킬 때, 데이터는 학습 세트, 검증 세트, 테스트 세트라는 3가지 세트로 구분됩니다.

학습 및 검증 세트는 방대한 양의 사전 처리, 아키텍처, 초매개변수 옵션 조합을 시도합니다. 이러한 시도를 통해 학습된 모델을 만들며, 검증 세트를 바탕으로 모델의 품질을 평가하고 추가 옵션 조합을 살펴봅니다.

추가 시도가 품질 향상으로 이어지지 않는다면, 해당 버전의 모델이 최종이자 최고 성능의 학습된 모델로 간주됩니다. 그리고 AutoML Tables는 동시 조정 단계에서 결정한 매개변수와 아키텍처를 바탕으로 추가 모델 2개의 학습을 진행합니다.

  1. 사용자의 학습 및 검증 세트로 학습을 진행한 모델

    AutoML Tables는 이 모델에서 테스트 세트를 사용해 모델 평가 측정항목을 생성합니다. 테스트 세트는 전체 과정 중 이 시점에서 처음으로 사용되며, 최종 평가 측정항목이 최종 학습된 모델을 프로덕션 단계에 배포했을 때의 성능을 편향 없이 반영하는지 확인하는 역할을 합니다.

  2. 사용자의 학습, 검증, 테스트 세트로 학습을 진행한 모델

    이 모델은 예측을 요청할 때 사용합니다.

데이터 분할 제어 정보

기본적으로 AutoML Tables는 데이터 행의 80%를 학습 용도, 10%를 검증 용도, 나머지 10%를 테스트 용도로 임의로 선택합니다. 시간이 지나도 변하지 않고 상대적으로 균형 잡혀 있으며 프로덕션 단계에서 예측에 사용할 데이터의 분포를 반영하는 데이터세트에서는 무작위 선택 알고리즘만으로도 충분합니다. 핵심 목표는 테스트 세트가 프로덕션 단계에서 모델이 보게 될 데이터를 정확하게 반영하게 하는 것입니다. 이렇게 해야 평가 측정항목을 통해 모델이 실제 데이터에서 어떤 성능을 보일지 정확하게 판단할 수 있습니다.

다음은 데이터 분할에서 사용할 행을 적극적으로 선택해야 하는 상황입니다.

  • 데이터가 시간에 민감합니다.

    이때는 시간 열을 사용하거나, 수동 분할을 사용해 가장 최근 데이터가 테스트 세트로 사용되도록 해야 합니다.

  • 테스트 데이터에 프로덕션 단계에서는 표시되지 않는 모집단의 데이터가 있습니다.

    예를 들어 여러 매장의 구매 데이터로 모델을 학습시킨다고 가정해 보겠습니다. 하지만 이 모델의 주 용도는 학습 데이터에 없는 매장에 대해 예측을 실행하는 것입니다. 모델이 입력되지 않은 매장도 일반화할 수 있도록 학습시키려면 데이터세트를 매장별로 분리해야 합니다. 즉, 테스트 세트에는 평가 세트에 속하지 않는 매장만 포함해야 하며 평가 세트에는 학습 세트에 속하지 않는 매장만 포함해야 합니다.

  • 클래스의 균형이 맞지 않습니다.

    학습 데이터에 특정 클래스가 다른 클래스보다 지나치게 많다면, 테스트 데이터에 소수 범주 예시를 수동으로 추가해야 할 수도 있습니다. AutoML Tables는 계층화된 샘플링을 수행하지 않으므로 테스트 세트에 소수 범주가 너무 적거나 아예 없을 수도 있습니다.

다음 두 가지 방법을 사용해 어떤 분할에 어떤 열을 선택할지 제어할 수 있습니다.

데이터 분할 열과 시간 열을 모두 지정해도 데이터를 분할할 때는 데이터 분할 열만 사용됩니다.

데이터 분할 열

데이터 분할 열을 사용하면 학습, 검증, 테스트에 사용할 구체적인 행을 선택할 수 있습니다. 학습 데이터를 만들 때 다음 값 중 하나(대소문자 구분)를 포함할 수 있는 열을 추가해야 합니다.

  • TRAIN
  • VALIDATE
  • TEST
  • UNASSIGNED

이 열의 값은 다음 두 조합 중 하나여야 합니다.

  • TRAIN, VALIDATE, TEST 전체
  • TESTUNASSIGNED

모든 행에 이 열의 값이 있어야 하며, 이 값은 빈 문자열일 수 없습니다.

예를 들어 모든 세트를 지정한 경우 값은 다음과 같습니다.

"TRAIN","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"TRAIN","Roger","Rogers","123-45-6789"
"VALIDATE","Sarah","Smith","333-33-3333"

테스트 세트만 지정한 경우 값은 다음과 같습니다.

"UNASSIGNED","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"UNASSIGNED","Roger","Rogers","123-45-6789"
"UNASSIGNED","Sarah","Smith","333-33-3333"

테스트 분할 열에 지정할 수 있는 이름에는 제한이 없습니다.

데이터 분할 열의 값이 UNASSIGNED이면 AutoML Tables는 자동으로 해당 행을 학습 또는 검증 세트에 할당합니다.

데이터를 가져온 후 수동 데이터 분할을 선택하고 이 열을 데이터 분할 열로 지정합니다. mlUseColumnSpecId 필드를 사용해도 됩니다.

시간 열

시간 열을 사용하면 시간이 중요한 데이터임을 AutoML Tables에 알릴 수 있습니다. 이 열은 시간이 경과해도 무작위로 분배되지 않습니다. 시간 열을 지정하면 AutoML Tables는 열의 처음 80%를 학습용으로, 다음 10%를 검증용으로, 마지막 10%를 테스트용으로 자동으로 사용합니다.

AutoML Tables는 각 행을 독립적이고 동일한 분포의 학습 예시로 취급하므로, 시간 열을 설정해도 행은 변경되지 않습니다. 시간 열은 데이터세트를 분할하는 데만 사용됩니다.

데이터세트의 모든 행에 시간 열 값을 포함해야 합니다. 평가 세트와 테스트 세트가 비어 있지 않도록 시간 열에 고유 값이 충분히 있는지 확인하세요. 대개 최소 20개의 고유 값만 있어도 충분합니다.

시간 열의 데이터 유형은 Timestamp여야 합니다.

스키마를 검토할 때 이 열을 시간 열로 선택합니다. API에서는 timeColumnSpecId 필드를 사용합니다. 이 선택은 데이터 분할 열을 지정하지 않았을 때만 적용됩니다.

데이터를 분할하는 데 사용되지 않는 시간 관련 열이 있으면 해당 열의 데이터 유형을 Timestamp로 설정하되 시간 열로 설정해서는 안 됩니다.

학습 데이터에서 가중치 사용 정보

기본적으로 AutoML Tables는 학습 데이터의 각 행에 동일한 가중치를 적용합니다. 학습 용도에서는 어떤 행도 다른 행보다 중요하다고 간주되지 않습니다.

학습을 위해 일부 행에 더 높은 중요도를 부여하면 좋을 때도 있습니다. 예를 들어 지출 데이터를 사용한다면, 고액 지출자와 관련된 데이터가 모델에 더 큰 영향을 줘야 합니다. 특정 결과가 누락되는 일을 막고 싶다면 해당 결과의 행에 더 많은 가중치를 부여하면 됩니다.

데이터 세트에 가중치 열을 추가하면 행에 상대적 가중치를 부여할 수 있습니다. 가중치 열은 숫자 열이어야 합니다. 이 열을 이용해 0~10,000 사이의 값을 지정합니다. 값이 클수록 AutoML Tables는 모델 학습 시 행이 더 중요하다고 인식합니다. 가중치가 0이면 관련 행은 무시됩니다. 가중치 열을 포함하는 경우 모든 행의 값이 포함되어야 합니다.

나중에 스키마를 검토할 때 이 열을 가중치 열로 지정합니다. weightColumnSpecId 필드를 사용해도 됩니다.

커스텀 가중치 스키마는 모델 학습용으로만 사용하며 모델 평가에는 영향을 주지 않습니다.

타겟 열의 요구사항

타겟 열은 다음 요구사항을 준수해야 합니다.

  • 범주형 또는 숫자여야 합니다.
  • 범주형인 경우 열에는 고유 값이 2개에서 500개까지 있어야 합니다.
  • null이 될 수 없습니다.

다음 단계