データ型

このページでは、AutoML Tables のデータセットにインポートできるデータ型と、それらのデータ型が BigQuery や CSV とどう対応するかについて説明します。

はじめに

トレーニング データをインポートすると、AutoML Tables は各列のデータ型を、入力データのネイティブ型とその列の値に基づいて提案します。列のデータ型は、その列がモデルのトレーニングでどう使用されるかに影響するため、重要です。データをインポートしたら、各列を見直して、AutoML Tables が選択したデータ型がデータにとって正しい型であることを確認します。

モデルを作成すると、データセットは、独自のデータ型を持つオブジェクトのリストに変換されます。オンライン予測を使用する場合は、この形式を使用するようデータを変換しなければなりません。

AutoML Tables のデータ型

カテゴリ

カテゴリ値とは、カテゴリ内の値を表す公称レベルです。各値の違いはそれらの名前にのみ基づいており、順序はありません。数字を使ってカテゴリ値を表すことができますが、各値は互いと数値的な関係を持ちません。つまり、カテゴリ 1 はカテゴリ 0 より「大きい」わけではありません。

カテゴリ値の例を示します。

  • ブール値: truefalse
  • 国: "USA""Canada""China" などです。
  • HTTP ステータス コード: "200""404""500" などです。

カテゴリ値では大文字と小文字が区別されます。スペリングが変わると異なるカテゴリとして扱われます(たとえば、「Color」と「Colour」は結び付けられません)。

テキスト

テキスト値は自由形式テキストを表し、通常はテキスト トークンで構成されます。

テキスト値の例を示します。

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

テキスト フィールドは、空白によってモデル トレーニングのトークンに解析されます。

数値

数値は、序数または量的数を表します。これらの数字は比較ができ、2 つの異なる数は一方が他方より小さいことも大きいこともありえます。

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}

次のステップ