데이터 유형

이 페이지에서는 AutoML Tables 데이터 세트로 가져올 수 있는 데이터 유형과 이러한 유형을 BigQuery 또는 CSV에 매핑하는 방법을 설명합니다.

소개

학습 데이터를 가져올 때 AutoML Tables는 입력 데이터의 기본 유형과 열의 값을 바탕으로 각 열의 데이터 유형을 제안합니다. 열의 데이터 유형은 중요한 의미가 있는데, 모델 학습에서 열을 사용하는 방식에 영향을 주기 때문입니다. 데이터 가져오기가 끝나면 각 열을 검토해 AutoML Tables가 선택한 데이터 유형이 올바른지 확인해야 합니다.

모델을 만들 때 데이터 세트는 객체 목록으로 변환되며, 이 객체는 고유한 데이터 유형을 가집니다. 온라인 예측을 사용한다면 이 형식을 이용할 수 있도록 데이터를 변환해야 합니다.

AutoML Tables 데이터 유형

범주형

범주형 값은 범주의 값을 나타냅니다. 따라서 명목상의 수준에 해당합니다. 값은 순서가 없으며 이름에 따라서만 달라집니다. 숫자로 범주형 값을 나타낼 수도 있지만, 값 사이에는 수적 관계가 존재하지 않습니다. 따라서 범주형 1은 범주형 0보다 '크지' 않습니다.

다음은 범주형 값의 예입니다.

  • 불리언 - true, false
  • 국가 - "USA", "Canada", "China"
  • HTTP 상태 코드 - "200", "404", "500"

범주형 값은 대소 문자를 구분하며 철자가 다르면 다른 범주로 취급합니다(예 'Color'와 'Colour는 서로 결합되지 않음).

텍스트

텍스트 값은 자유 형식 텍스트를 나타내며, 대부분 텍스트 토큰으로 구성됩니다.

다음은 텍스트 값의 예입니다.

  • "The quick brown fox"
  • "This restaurant is the best! The food is delicious"

텍스트 필드는 모델 학습에서는 공백으로 구분한 토큰으로 파싱됩니다.

숫자

숫자 값은 서수 또는 수량을 나타냅니다. 이러한 숫자는 서로 비교할 수 있습니다. 즉, 한 숫자는 다른 숫자보다 작거나 클 수 있습니다.

AutoML Tables는 호환되는 모든 문자열을 숫자로 해석합니다. 선행 또는 후행 공백은 잘립니다.

다음 표에서는 숫자 데이터 유형과 호환되는 형식이 모두 나와 있습니다.

형식 예시 참고
숫자 형식 문자열 '101', '101.5' 마침표 문자('.')만 유효한 십진수 구분 기호입니다. '101,5' 및 '100,000'은 유효한 숫자 형식 문자열이 아닙니다.
과학적 표기법 '1.12345E+11', '1.12345e+11' 십진수 구분 기호는 숫자 형식 문자열 참고 섹션을 참조하세요.
숫자가 아님 'NAN', 'nan', '+NAN' 대소문자를 구분하지 않습니다. 결과 앞에 오는 플러스('+') 또는 마이너스('-') 문자는 무시됩니다. NULL 값으로 해석됩니다.
무한대 'INF', '+inf' 대소문자를 구분하지 않습니다. 결과 앞에 오는 플러스('+') 또는 마이너스('-') 문자는 무시됩니다. NULL 값으로 해석됩니다.

타임스탬프

타임스탬프 값은 특정 시점을 나타내며 시간대가 포함된 상용시나 Unix 타임스탬프로 표시됩니다. 시간 열에는 타임스탬프 유형의 특성만 사용할 수 있습니다.

시간대가 상용시로 지정되지 않았다면 기본값인 UTC가 됩니다.

다음 표에는 호환되는 시간 문자열이 모두 나와 있습니다.

형식 예시 참고
%E4Y-%m-%d '2017-01-30' 이 형식에 대한 설명은 Abseil 문서를 참조하세요.
%E4Y/%m/%d '2017/01/30'
%Y/%m/%d %H:%M:%E*S '2017/01/30 23:59:58'
%d-%m-%E4Y '30-11-2018'
%d/%m/%E4Y '30/11/2018'
%d-%B-%E4Y '30-November-2018'
%Y-%m-%dT%H:%M:%E*S%Ez '2019-05-17T23:56:09.05Z' RFC 3339
Unix 타임스탬프 문자열(초 단위) '1541194447' 1990년 1월 1일부터 2030년 1월 1일까지의 시간 범위에만 해당됩니다.
Unix 타임스탬프 문자열(밀리초 단위) '1541194447000'
Unix 타임스탬프 문자열(마이크로초 단위) '1541194447000000'
Unix 타임스탬프 문자열(나노초 단위) '1541194447000000000'

구조체

구조체로 라벨 지정 필드 그룹을 나타낼 수 있습니다. 구조체에는 각 항목이 데이터 유형과 연결된 필드 이름 목록이 있습니다. 열의 모든 구조체 값에서, 필드 목록과 목록의 데이터 유형이 일치해야 합니다.

다음은 구조체의 몇 가지 예시입니다.

  • 혈압 - {"timestamp": 1535761416, "systolic": 110, "diastolic": 70}
  • 상품 - {"name": "iPhone", price: 1000}

BigQuery STRUCT 데이터 유형으로 구조체를 나타낼 수 있습니다.

배열

배열을 이용해 값 목록을 나타낼 수 있습니다. 포함된 값은 데이터 유형이 같아야 합니다. 배열에 복합 데이터 유형(구조체)을 포함할 수 있습니다. 모든 구조체의 구조가 동일해야 합니다.

AutoML Tables는 배열이 상대적 가중치를 나타내도록 처리합니다. 즉, 배열의 뒤쪽에 있는 항목은 앞쪽에 있는 항목보다 더 많은 가중치가 적용됩니다.

다음은 배열의 몇 가지 예시입니다.

  • 제품 카테고리:

    ["Clothing", "Women", "Dress", ...]

  • 최근 구매 항목:

    ["iPhone", "Laptop", "Suitcase", ...]

  • 사용자 레코드:

    [{"name": "Joelle", ID: 4093}, {"name": "Chloe", ID: 2047}, {"name": "Neko", ID: 3432}, ...]

BigQuery ARRAY 데이터 유형으로 배열을 나타낼 수 있습니다.

열 이름 형식

BigQuery용 스키마나 CSV용 헤더 행을 만들 때는 학습 데이터의 열(특성) 이름을 지정해야 합니다. 열 이름에는 영숫자 문자 또는 밑줄(_)을 사용할 수 있습니다. 열 이름은 밑줄로 시작할 수 없습니다.

BigQuery 테이블

지원되는 데이터 유형

BigQuery 테이블을 만들기 전에, 지원되는 BigQuery 데이터 유형과 이러한 유형이 AutoML Tables 데이터 유형에 어떻게 매핑되는지를 알아야 합니다.

BigQuery 데이터 유형 가져오기 지원 여부 AutoML Tables 데이터 유형
INT64 숫자, 범주형
NUMERIC 숫자, 범주형
FLOAT64 숫자, 범주형
BOOL 범주형
STRING 텍스트, 범주형, 숫자
BYTES 아니요
DATE 타임스탬프, 범주형
DATETIME 타임스탬프, 범주형
GEOGRAPHY 아니요
TIME 범주형
TIMESTAMP 타임스탬프, 범주형
ARRAY 배열
STRUCT 구조체

CSV 파일

지원되는 데이터 유형

모든 CSV 데이터는 문자열로 가져옵니다. CSV를 이용해 가져올 때는 다음 AutoML Tables 데이터 유형을 사용할 수 있습니다.

  • 텍스트
  • 범주형
  • 숫자
  • 타임스탬프

CSV 형식

AutoML Tables는 RFC 4180 CSV 형식을 사용합니다.

행 객체 형식

온라인 예측을 요청할 때는 예측 데이터를 행 객체의 JSON 표현으로 제시해야 합니다. 아래 표에는 각 AutoML Tables 데이터 유형에 허용되는 데이터 유형이 나와 있습니다. 제일 쉽게 제공할 수 있는 데이터 형식을 선택하면 됩니다.

AutoML Tables 데이터 유형 Row 객체 데이터 유형 형식
범주형 bool_type true, false
string_value '42'
'blue'
'2014-01-31'
'2014-01-31 13:14:15.123456789'
'21:02:42.118039'
'1553040000'(UNIX 타임스탬프)
숫자 string_value "42.3"
number_value 42.3
텍스트 string_value "The quick brown fox"
타임스탬프 string_value '2014-01-31'
'2014-01-31 13:14:15.123456789'
'1553040000'(UNIX 타임스탬프)
배열 list_value ["dog", "cat", "fish"]
구조체 struct_value {"field1": "ABC", "field2": 100}

다음 단계