ブロックリファレンス

Block Reference

機械学習

MLボード予測(バッチ)

このブロックはベータ版です。正式版リリース後、本ブロックは利用できなくなります。ご注意ください。
※正式版リリース後は、正式版のブロックをご利用ください。

また、ベータ版での提供となるため、一部の機能が正常に動作しない可能性があります。機能改善や不具合などのフィードバックは、フォーラムやお問い合わせで情報提供をお願いします。フィードバックの内容は MAGELLAN BLOCKS の品質向上のために利用いたします。

概要

このブロックは、ML ボードでトレーニングした結果と予測因子データを使って、バッチで予測を行います。大量の予測データをまとめて予測するのに向いています。

ML ボード予測(オンライン)」ブロックに比べると予測に時間がかかります。ただし、予測データが大量の場合は、「ML ボード予測(バッチ)」ブロックの方がより適切な予測時間となります。

数値分類タイプと数値回帰タイプの場合は、Google Cloud Storage (GCS) 上のテキストファイルから予測因子データを読み込んで予測します。予測した結果は、GCS のフォルダーへテキストファイルで出力します。予測結果のファイルは、原則として複数のファイルに分割して出力します。

バッチ予測概略図

画像分類タイプの場合は、GCS 上の画像ファイルか画像ファイルを埋め込んだ JSON ファイルを読み込んで予測します。予測結果の扱いは、数値分類タイプ・数値回帰タイプの場合と同様です。

このブロックで使用する ML ボードのトレーニングは、適用を済ませておいてください。

予測因子データの準備

数値分類タイプ・数値回帰タイプ

予測因子データは、以下のような JSON 形式のテキストファイルで準備します。

{"key": "1", "sepal_length": 5.9, "sepal_width": 3.0, "petal_length": 4.2, "petal_width": 1.5}
{"key": "2", "sepal_length": 6.9, "sepal_width": 3.1, "petal_length": 5.4, "petal_width": 2.1}
{"key": "3", "sepal_length": 5.1, "sepal_width": 3.3, "petal_length": 1.7, "petal_width": 0.5}
  • 1 行に 1 つの JSON オブジェクト({...} という形式)で記述します。
  • 行は改行で区切ります。
  • 1 件分の予測因子データを 1 つの JSON オブジェクトにまとめます。
  • JSON オブジェクトは、複数の「名前」と「値」のペアで構成します。
    • 名前と値のペアは、: で区切ります。
    • : の左側が「名前」で、: の右側が「値」です(名前: 値)。
  • 値には、以下の 3 種類が指定できます。
    • 数値: 123.45 など(数値型・月型・曜日型のデータ)
    • 文字列: "abc""xyz" などの " で囲まれたもの(文字列列挙型のデータ)
    • 配列値: [1, 2, 3][4, 5.6, 7.0] などの複数個の数値の並びを [] で囲んだもの(次元数が指定された数値型のデータ)
  • JSON オブジェクト(予測因子データ)には、"key" という名前を含めてください。値には、予測因子データ 1 件ごとにユニークな文字列を指定します。

予測結果は、GCS のフォルダーに JSON 形式のテキストファイルで出力されます。ファイルは、以下のようなファイル名で出力され、XXXXXYYYYY の部分が出力するファイル数によって変化します。

prediction.results-XXXXX-of-YYYYY
  • XXXXX: 0 から始まるファイルのインデックスとなる番号(0000000001 など)。
  • YYYYY: 予測結果ファイルの総数(0000100003 など)。

以下は、数値分類タイプの予測結果の例です。

 {"score": [9.230815578575857e-08, 0.007054927293211222, 0.9929450154304504], "key": "2", "label": 2} 
  • 1 行に 1 つの JSON オブジェクト({...} という形式)で出力されます。
  • 行は改行で区切られます。
  • 1 件分の予測結果を 1 つの JSON オブジェクトにまとまっています。
    "score" 分類ごとの予測の確からしさです。
    この例の場合は、左から順に分類値 0 が 0.000009231%、分類値 1 が 0.705492729%、分類値 2 が 99.294501543% の確からしさという意味になります。
    "key" 予測に使用した予測因子データの "key" の値です。
    "label" 予測値です。

以下は、数値回帰タイプの予測結果の例です。

{"output": 10304.1962890625, "key": "20170103"}
  • 1 行に 1 つの JSON オブジェクト({...} という形式)で出力されます。
  • 行は改行で区切られます。
  • 1 件分の予測結果を 1 つの JSON オブジェクトにまとまっています。
    "output" 予測値です。
    "key" 予測に使用した予測因子データの "key" の値です。
画像分類タイプ

画像分類タイプの予測方法は、2 種類あります。

  • GCS 上の画像ファイルを指定して予測する方法
  • JSON ファイルを指定して予測する方法

以下、それぞれの方法について、解説します。

GCS 上の画像ファイルを指定して予測する方法

この方法は、簡単で一般的な方法です。

  • 画像ファイル群を GCS 上の 1 つのフォルダーにまとめてアップロードします。
  • そのフォルダーへの GCS URL を [予測因子データのファイルGCS URL] プロパティに指定します。
  • GCS URL の最後には、必ず / を付けてください。
  • 対応する画像ファイルの形式は、JPEG のみです。
  • 画像ファイルの拡張子は、.jpg.jpeg の 2 種類のみです(大文字でも小文字でも構いません)。
  • アップロードする画像ファイルは、1 つのフォルダーの中で、フォルダー分けした配置が可能です(下図参照)。
JSON ファイルを指定して予測する方法

画像ファイルを Base64 でエンコードして、JSON ファイルに書き込む方法です。

  • JSON ファイルには、改行で区切られた 1 つ以上の JSON オブジェクトが必要です。
    (例)
    {"key": "samp01", "image": {"b64": "/9j/4...(中略).../2Q=="}}
    {"key": "samp02", "image": {"b64": "/9j/4...(中略).../2Q=="}}
    
  • JSON オブジェクトの形式は、以下のとおりです。
    (形式)
    {"key": "キー", "image": {"b64": "Base64 エンコード画像データ"}}
    

    赤字の部分に予測画像の情報を設定します。
    名前
    "key" 予測画像を識別するためのキーとなる文字列を指定します。
    "b64" 予測画像を Base64 でエンコードしたデータを指定します。
  • 対応する画像ファイルの形式は、JPEG のみです。
  • JSON ファイルは、GCS 上にアップロードして、そのファイルへの GCS URL を [予測因子データのファイルGCS URL] プロパティに指定します。
予測結果

予測結果は、GCS のフォルダーに JSON 形式のテキストファイルで出力されます。ファイルは、以下のようなファイル名で出力され、XXXXXYYYYY の部分が出力するファイル数によって変化します。

prediction.results-XXXXX-of-YYYYY
  • XXXXX: 0 から始まるファイルのインデックスとなる番号(0000000001 など)。
  • YYYYY: 予測結果ファイルの総数(0000100003 など)。

以下は、予測結果の例です。

{"labels": ["cat", "dog"], "score": [1.0, 2.0886015139609526e-10], "key": "gs://my-bucket/images/sample_01.jpg", "label": "cat"}
{"labels": ["cat", "dog"], "score": [3.7939051367175125e-07, 0.9999996423721313], "key": "gs://my-bucket/images/sample_02.jpg", "label": "dog"}
  • 1 行に 1 つの JSON オブジェクト({...} という形式)で出力されます。
  • 行は改行で区切られます。
  • 1 件分の予測結果が 1 つの JSON オブジェクトにまとまっています。
    "labels"

    分類の種類のリストです。この例の場合、"cat"(猫)と "dog"(犬)の 2 種類です。

    "labels" のリスト順序は、次の "score" のリスト順序に対応しています。

    "score"

    分類ごとの予測の確からしさです。

    この例の場合、"score" の 1 番目の値は、"cat" に対応し、"score" の 2 番目の値は、"dog" に対応します。

    "key"
    • GCS 上の画像ファイルを指定して予測した場合は、画像ファイルへの GCS URL が出力されます。
    • JSON ファイルを指定して予測した場合は、ファイル内で指定した "key" の値が出力されます。
    "label"

    予測値です。"score" の最も高い分類値が予測値です。

プロパティ

プロパティ名 説明
ブロック名 ブロックの名前を指定します。ブロックに表示されます。
GCPサービスアカウント このブロックで使用する GCP サービスアカウントを選択します。
MLボード名 予測に使用する ML ボードを選択します。
予測因子データのファイルGCS URL
  • 数値分類タイプと数値回帰タイプの場合は、予測因子データを格納しているテキストファイルの場所を GCS URL 形式で指定します。

    バケットが blocks-sample、予測因子データのテキストファイルが sample.json の場合は、gs://blocks-sample/sample.json のように指定します。

  • 画像分類タイプの場合は、予測画像をアップロードしたフォルダーへの GCS URL か、予測画像を埋め込んだ JSON ファイルへの GCS URL を指定します。

    バケットが blocks-sample、予測画像のフォルダーが images の場合は、gs://blocks-sample/images/ のように指定します(最後に必ず / を付けます)。

    バケットが blocks-sample、予測画像を埋め込んだファイルが sample.json の場合は、gs://blocks-sample/sample.json のように指定します。

予測結果の出力先GCS URL

予測結果を出力する GCS フォルダーの場所を GCS URL 形式で指定します。

例えば、バケットが blocks-sample、予測結果の出力用フォルダーが results の場合は、gs://blocks-sample/results/ のように指定します。

指定したフォルダーが存在しない場合は、自動でフォルダーを作成します。
既にフォルダーが存在して、そのフォルダー内に予測結果ファイルと同名のファイルが存在した場合は、上書きします。