ML ボードの使い方(数値分類タイプ)

ML Board How-To Guide

数値分類モデルを利用した分類

はじめに

ML ボードに用意された数値分類モデルは、与えた特徴データから分類を行うことができます。

例えば、以下のような利用方法が考えられます。

  • キャンペーンなどの実施により「会員登録する (0) / 会員登録しない (1)」に分類
  • ウェブサイトで表示される広告を「クリックしない (0) / クリックする (1)」に分類
  • ユーザーの趣向性を数値化して「地域特性など数パターン (0 から n)」に分類
  • クレジットカードや ATM の利用特性から「正当利用 (0) / 不正利用 (1)」に分類

最初に知っておくべきこと

予測因子

分類を行うにあたって一番重要となるのは、分類を予測するための因子です。例えばクレジットカードの不正利用を見抜くための因子として、利用した日時と場所に関するデータが重要なのかもしれません。何を購入したのかは、不正利用の因子にはならないかもしれませんし、場合によっては重要な因子になるかもしれません。

適切な因子を選択できれば、精度が格段にあがります。因子の選択が、機械学習にはとても重要です。

ベンチマーク

実際に予測分類をおこなう前に、成否の目安となる指標を準備しておくことをおすすめします。例えば、経験豊富な人が、目視で行っている分類をベンチマークにするのも良いかもしれません。何かしらの目安を設定して、分類モデルを作成すれば、仮にベンチマークに到達しなかったとしても、コストや手軽さなどから実用に適用することが妥当であると判断できるかもしれません。

サンプルで解決する課題について

では、早速分類を行ってみたいと思います。

分類には、フィッシャーのあやめを利用します。フィッシャーは、イギリスの学者で、専門分野は統計学、進化生物学、遺伝学などに渡っていました。

そのフィッシャーが発表した論文にあやめの分類データがあり、3 種類のあやめ(Iris setosa, Iris virginica, Iris versicolour)の花びらの長さと幅、がくの長さと幅といった 4 つのデータが、それぞれ 50 種類掲載されています。統計や機械学習などで分類の課題として、このデータを利用することが多く、今回もこのデータを ML ボードに学習させて、正しく分類できる学習モデルを作成してみましょう。

ML ボードを使った予測システム構築の流れ

実際に ML ボードを使って予測を行う前に、おおまかな流れについて説明します。

  1. モデルの選択: 今回は数値から分類を行うので、数値分類モデルを選択します。ML ボードのモデルは、今後拡張していく予定です。

  2. 予測因子に関する考察: 何を因子として分類を行うのかは、予測モデルを作るために最も重要なことです。今回は、フィッシャーのあやめを使います。

  3. 学習データの作成: ML ボードに学習させるには、因子を CSV ファイルにして行います。

  4. 学習: データが準備できたら、ML ボードに学習させます。学習にあたっては、最適化を自動的に行うことも実施します。これにより、幾つかのパターンを実行させ、最も精度の高い学習モデルを利用できるのです。

  5. 評価: いったん学習が終われば、BLOCKS の Big Data ボードを利用して学習済みモデルを利用した予測を行うことができます。ここで学習に利用していないデータを使い、予測精度に関する評価をします。実際に利用する場合、もし精度が十分でなければ、予測因子に関する考察から見直し、どんな因子を ML ボードに見せるべきか、見せる場合にどのように見せたら良いのかからもう一度考えてください。

  6. 利用: 実用的な学習済モデルが完成したら、BLOCKS の Big Data ボードを使って予測を行ったり、BLOCKS の IoT ボードを使って継続的に因子データを収集して、より高い精度の予測を行えるようにしたりと、様々な応用を考えてみてください。そしてこうした一連の作業を BLOCKS で行っている限り、プログラムを作成したりインフラを構築したりといったことが大幅に削減でき、とても効率のよいシステム構築が行えるはずです。

学習のためのデータ作成

あやめのデータは、カルフォルニア大学アーバイン校のサイト から ダウンロード できます。ダウンロードサイトの “bezdekIris.data” が最新のものなので、今回はこのデータを利用します。

データについて

データは、以下の 4 項目 + 正解値の 1 項目で構成されています。

  1. sepal length in cm(萼片の長さ: cm)
  2. sepal width in cm(萼片の幅: cm)
  3. petal length in cm(花弁の長さ: cm)
  4. petal width in cm(花弁の幅: cm)
  5. class(正解となる分類された種別名)

分類されるあやめの種類は、以下の 3 つです。

Iris setosa
Iris setosa
Iris versicolour
Iris versicolour
Iris virginica
Iris virginica

学習データの作成

ダウンロードしたデータを ML ボードに学習させるためのデータを作成します。学習には、訓練と検証の 2 つのデータが必要です。

ML ボード概略図(訓練データ&検証データ版)

訓練用データは ML ボードが学習していくためのデータで、検証用データは ML ボードが学習した結果を検証するためのデータです。

この 2 種類のデータを使って、ML ボードは自分で検証を行いながら学習をしていきます。この学習過程を ML ボードでは、トレーニングと呼びます。

また、ML ボードに与えるデータを総称して、トレーニングデータと呼びます。

トレーニングデータは、上図のようにあらかじめ訓練データと検証データに分けて ML ボードに渡すこともできますが、分けずに 1 ファイルで ML ボードに渡すこともできます。分けずに 1 ファイルで ML ボードに渡した場合は、ML ボード内で訓練データと検証データに自動分割されます。自動分割時の訓練データと検証データの比率は、おおよそ 8:2 です。

ML ボード概略図(トレーニングデータ版)

トレーニングデータ(訓練データ・検証データ)は、カンマ区切りの CSV ファイルにしてください(文字コードは、BOM なし UTF-8)。ファイルフォーマットの基本的ルールはひとつだけ。一行毎に、因子を並べて、最後に正解値を置くことです(正解値は文字列型のみ)。トレーニングデータを訓練データと検証データに分割する場合、両データとも同じ形式で準備します。

今回の例では、トレーニングデータを訓練データと検証データに分割します。各データは、ダウンロードしたデータそのままの形式で、以下のように並んでいます。

萼片の長さ, 萼片の幅, 花弁の長さ, 花弁の幅, 種別名
ML Data Editor を利用した学習データの作成

学習データを作成するのは、表計算ソフトを使って行うこともできます。最終的には CSV ファイルにすればよいだけなので、簡単にデータを作りたいならそれでも構いません。

しかし、定期的に学習を行いたいとか、そもそもデータ量がすごく多い場合などは BLOCKS の ML Data Editor を利用することをおすすめします。こうすれば、データの分析や学習データの作成から ML ボードによる学習と予測まで、一貫して BLOCKS が利用できます。

実際の流れは、以下の通りです。

  1. ダウンロードしたあやめデータを GCS Explorer を使って、Google Cloud Storage(GCS)にアップロード
  2. あやめデータの ML Data Editor への読み込み(インポート)
  3. データのクレンジング
  4. 訓練用データと検証用データの作成
  5. 訓練用データを GCS へ書き出し
  6. 検証用データを GCS へ書き出し
あやめデータを GCS にアップロード

あやめデータを GCS へアップロードするには、GCS Explorer を使うと便利です。

GCS Explorer の開き方の解説図

BLOCKS のサイドバーから GCS Explorer のアイコンにマウスカーソルを重ねます。表示されるメニューから[新しいタブで開く]をクリックします。

GCS Explorer の画面が新しいタブで開きます。

バケット選択方法の解説図

GCP サービスアカウントの選択]から GCP サービスアカウントを選択します。

バケットの選択]では、プラン毎に以下の操作を行います。

  • フルサービスプランの場合

    -data で終わるバケットを選択します。

  • セルフサービスプラン(フリートライアル含む)の場合

    新しいバケット]をクリックし、バケットを作成します。

    バケット作成方法の解説図

    バケット名は、自由に設定して構いません。ストレージクラスとロケーションについては、それぞれ必ず Regionalus-central1 でなければなりません。

info_outlineここでは、説明の便宜上 blocks-ml-demo-data を選択(作成)したものとします。これ以降、blocks-ml-demo-data は、実際に選択(作成)したバケット名で読み替えてください。

続いて、あやめデータのアップロード先とするフォルダーを選択したバケット内に作成します。

フォルダー作成方法の解説図(1)

フォルダを作成する]ボタンをクリックします。

フォルダー作成方法尾の解説図(2)

フォルダー名は、iris とします。

作成したフォルダーの確認と選択の解説図

作成したフォルダー名が表示されたことを確認し、そのフォルダー名をクリックします(フォルダー内に移動)。

フォルダー内に移動したことを確認する解説図

作成したフォルダー内に移動したことを確認します。

あやめデータのアップロード方法の解説図(1)

ファイルをアップロードする]をクリックします。

あやめデータのアップロード方法の解説図(2)

ファイルを開くダイアログからダウンロードしたあやめのデータを選択します(上図は macOS の例)。

アップロードされたファイルを確認する解説図

しばらくすると、ファイルがアップロードされます。GCS Explorer 内にあやめデータのファイル名が表示されていることを確認します。

以上で、あやめデータのアップロードは完了です。

ML Data Editor を利用したデータの作成

BLOCKS の ML Data Editor は、BigQuery を利用して処理を行っています。BigQuery は、Google が提供しているビッグデータ処理の基盤サービスです。BigQuery には以下の特徴があります。

  • データ量の制限が無く
  • 世界最速の処理速度を持ち
  • 価格が極めて安価

ML Data Editor を使えば、この BigQuery を専門知識を必要とせず、手軽に利用できます。ML ボードの学習データ作成だけでなく、その前にデータを分析してみたいという人も、ぜひ ML Data Editor を使って BigQuery を活用してみてください。

さて、GCS にアップロードしたデータですが、これを BLOCKS の ML Data Editor で処理できるように読み込み(インポート)を行っていきます。このインポートを行うと、ML Data Editor の処理基盤である BigQuery にデータが入ります。

あやめデータの ML Data Editor へインポート

では、早速あやめデータを ML Data Editor へインポートしましょう。

BLOCKS のサイドバーから ML Data Editor のアイコンにマウスカーソルを重ねます。表示されるメニューから[新しいタブで開く]をクリックします。

ML Data Editor の画面が新しいタブで開きます。

インポート]ボタンをクリックします。

インポート画面に切り替わります。

Google Cloud Storage のボタンをクリックし、GCS サービスアカウントを選択します。

GCS URL 欄をクリックして、GCS にアップロードしたあやめデータを選択します。

スキーマでは、[JSON 形式で編集]をクリックして、以下の JSON テキストを入力します。今回は、簡単に試していただくために、以下の JSON テキストを用意しました。コピーしてお使いください。

[
 {
  "name": "sepal_length",
  "type": "FLOAT",
  "mode": "NULLABLE"
 },
 {
  "name": "sepal_width",
  "type": "FLOAT",
  "mode": "NULLABLE"
 },
 {
  "name": "petal_length",
  "type": "FLOAT",
  "mode": "NULLABLE"
 },
 {
  "name": "petal_width",
  "type": "FLOAT",
  "mode": "NULLABLE"
 },
 {
  "name": "class",
  "type": "STRING",
  "mode": "NULLABLE"
 }
]

この JSON テキストは、以下のあやめデータの形式を表現したものです。

フィールド内容 フィールド名 データ型
萼片の長さ sepal_length 数値
萼片の幅 sepal_width 数値
花弁の長さ petal_length 数値
花弁の幅 petal_width 数値
正解となる分類された種別名 class 文字列

今回のあやめデータは、ヘッダー行なしのカンマ区切りの CSV ファイル形式であるのと、ある程度不完全なデータでもインポートさせるため、上記設定でファイルをインポートします。

ML Data Editor では、データを BigQuery にインポートするため、最後に BigQuery の情報を指定します。

ここでは、以下の情報を設定しました。

項目
データセット ID doc_samples
テーブル ID iris_init
空でないテーブルが存在したとき 上書き
名前 あやめ(初期データ)

以上で、あやめデータの ML Data Editor へのインポートは完了です。

データのクレンジング

続いて、インポートしたデータに欠落したーデータ(欠損値)や余分なデータが無いかを確認し、それらデータの削除を行います。

あやめデータをインポートしたときに付けた名前をクリックします。

欠損値のデータがある場合は、欠損値がある列ごとに info_outline が表示されます。その場合は、列ごとに上記操作を行います。

今回のあやめデータの場合は、すべての列において欠損値データがあります。すべての列に対して、上記操作を行ってください。

また、今回のあやめデータでは、余分なデータはありません。このため、余分なデータの削除は必要ありません。

ちなみに、この時点では、欠損値データの削除は BigQuery 側に反映されていません。

上記操作を行うことで、ML Data Editor 上での編集内容を BigQuery 側に反映させます。

編集内容を BigQuery に反映させる情報を指定します。

ここでは、以下の情報を設定しました。

項目
データセット ID doc_samples
テーブル ID iris_cleansing
名前 あやめ(クレンジングデータ)
空でないテーブルが存在したとき 上書き

BigQuery へのデータの反映が成功すると、上記メッセージが表示されます。[OK]ボタンをクリックします。

学習データを作るときに注意すべきなのは、データに偏りを作らないようにすることです。与えたデータに特定のあやめに関する情報が少なかったら、学習は適切に行えない可能性があります。適切に与えるためには、一定の比率でデータを与える方法もあります。ここでは ML Data Editor を使って、データをランダムに振り分けて、GCS へファイルを書き出します。

訓練用データと検証用データの作成

それでは、訓練用データと検証用データの作成です。訓練用と検証用のデータは、クレンジングデータをランダムにシャッフルし、8:2 の比率で分轄して作成します。

画面上部にある[分割]をクリックします。

以下のように指定します。

項目
分割方法

ランダムをクリックします([ランダム]が選択されている場合はそのまま)。

分割条件

80% と入力します(80% が表示されている場合はそのまま)。

分轄先テーブル(分轄条件を満たす行の出力先)

左から順に、BigQuery のデータセットとテーブル、最後が名前です。

ここでは、データセットはそのままとし、テーブルと名前を変更します。

  • テーブルiris_train
  • 名前あやめ(訓練データ)
分轄先テーブル(分轄条件を満たさない行の出力先)

左から順に、BigQuery のデータセットとテーブル、最後が名前です。

ここでは、データセットはそのままとし、テーブルと名前を変更します。

  • テーブルiris_test
  • 名前あやめ(検証データ)

訓練用データと検証用のデータの作成(分轄)に成功すると、上記メッセージが表示されます。[OK]ボタンをクリックします。

訓練用データの GCS への書き出し

訓練用データが作成できたら、ML ボードが読み取れるように CSV ファイルに変換して GCS に書き出しましょう。

あやめ(訓練データ)行右端の ボタンをクリックして、表示されるメニューから[エクスポート]をクリックします。

Google Cloud Storage のボタンをクリック後、以下のように指定します。

項目
出力先 GCS URL

あやめデータのアップロード先と同じバケットを選択し、iris/iris_train.csv と訓練用データのファイル名を入力します。

ファイル形式

CSV]をクリックします(CSV が選択されているときはそのまま)。

CSV 区切り文字

カンマ]をクリックします(カンマが選択されているときはそのまま)。

ヘッダー行

ヘッダー行を出力するのチェックを外します(チェックが外れているときはそのまま)。

訓練用データの GCS への書き出しに成功すると、上記メッセージが表示されます。[OK]ボタンをクリックします。

検証用データの GCS への書き出し

訓練用データと同じく、GCS に書き出します。

あやめ(検証データ)行右端の ボタンをクリックして、表示されるメニューから[エクスポート]をクリックします。

Google Cloud Storage のボタンをクリック後、以下のように指定します。

項目
出力先 GCS URL

あやめデータのアップロード先と同じバケットを選択し、iris/iris_test.csv と訓練用データのファイル名を入力します。

ファイル形式

CSV]をクリックします(CSV が選択されているときはそのまま)。

CSV 区切り文字

カンマ]をクリックします(カンマが選択されているときはそのまま)。

ヘッダー行

ヘッダー行を出力するのチェックを外します(チェックが外れているときはそのまま)。

検証用データの GCS への書き出しに成功すると、上記メッセージが表示されます。[OK]ボタンをクリックします。

これで、機械学習の ML ボードで利用する学習データの準備が整いました。ここまでで準備ができた学習データは以下の通りです。

データの種類 GCS URL
訓練用データ gs://blocks-ml-demo-data/iris/iris_train.csv
検証用データ gs://blocks-ml-demo-data/iris/iris_test.csv

バケット名(blocks-ml-demo-data)の部分は、実際に選択(作成)したバケット名で読み替えてください。

学習

それでは早速 ML ボードを使って学習をはじめましょう。利用するのは、数値分類モデルです。

ML ボード作成

学習のために、ML ボードを作ります。BLOCKS ボード一覧から「新規ボード作成」ボタンをクリックしてください。

新規ボード作成

新規ボード作成画面から「ML ボード」を選択します。

ML ボード選択

数値分類タイプを選択します。

タイプ選択

ボード名を入力します。

ML ボード(数値分類)作成のボード名設定画面

↓以下はセルフサービスプランの場合のみのステップです。

BLOCKS は、内部で Google のクラウドプラットフォーム(Cloud Machine Learning Engine という機械学習のためのプラットフォームなど)を利用しています。そのために GCP サービスアカウントが必要ですので、ここでアップロードしてください。また、API が有効化されていない場合は、API を有効化します。

ML ボード(数値分類タイプ)作成の GCP アカウント設定画面

学習が終了したら結果は GCS に保存されます。ですので保存先のバケット、ディレクトリを選択してください。

ここで使用する GCS バケットは、デフォルトのストレージクラスが「Regional」で、Regional のロケーションが「us-central1」もののみとしてください。これ以外のバケットを使用した場合の動作は保証できません。

ML ボード(数値分類タイプ)作成のストレージ設定画面

↑ここまでがセルフサービスプランの場合のみのステップです。

次に、ML ボードで、学習データの項目名、型、次元を設定します。

ML ボード(数値分類タイプ)作成のトレーニングデータ設定画面

入力した値は、以下を表しています。

  • データ項目:
    項目名 次元数 説明
    sepal_length 数値型 1 萼片の長さ
    sepal_width 数値型 1 萼片の幅
    petal_length 数値型 1 花弁の長さ
    petal_width 数値型 1 花弁の幅
  • 分類するラベル:

    以下 3 つのラベルを追加ボタンをクリックして、追加します。

    • Iris-setosa
    • Iris-versicolor
    • Iris-virginica

最後に、入力内容を確認します。

ML ボード(数値分類タイプ)作成の入力内容の確認画面

学習の開始

さて、全ての準備が整ったので、トレーニングを開始します。

ML ボード詳細

トレーニング開始をクリックします。

トレーニング開始
  • 画面から、トレーニング名を入力します。
  • トレーニングデータのアップロード方法では、[訓練データと検証データとをそれぞれ 1 ファイルずつ準備する]を選択します。
  • 訓練データ URL、検証データ URL は、GCS に保存した訓練データと検証データの場所になります。
    • 訓練データ URL 例: blocks-ml-demo-data/iris/iris_train.csv
    • 検証データ URL 例: blocks-ml-demo-data/iris/iris_test.csv

    パスに指定できる文字は、英数字・アンダースコア(_)・ハイフン(-)・スラッシュ(/)などのアスキー(ASCII)文字のみです。

  • CSV の読み飛ばすヘッダー行には、0 を指定します。
  • トレーニングの経過制限時間(分)を設定したい場合は、制限時間を入れてください。
  • トレーニングの最大試行回数を設定します。ここに試行回数を指定すれば、ML ボードは自動的にパラメータを変更して、最適な結果ができるようにチューニングをはじめます。
  • 早期打ち切り判定を利用するは、早期打ち切り判定を[利用する]か[利用しない]かを選択します。早期打ち切り判定とは、トレーニング中にこれ以上の精度向上が見込めないと判断した場合に、トレーニングの経過制限時間に達していなくてもトレーニングを打ち切る機能です。ただし、精度向上の見込み判断の正確性を保証するのものではありません。ご利用は、ご自身の判断でお願いします。
  • トレーニングに使用するマシンの種類は、[単一ノード]・[単一ノード(GPU)]から選択します。
    • 単一ノード:標準的なマシンを使ってトレーニングを行います。
    • 単一ノード(GPU):GPU (Graphic Processing Unit) を使ってトレーニングを行います。GCP の料金が[単一ノード]に比べて 3 倍ほどかかりますが、[単一ノード]に比べて高速なトレーニングが望めます。
      ただし、トレーニングデータの内容によっては、思ったほど高速にならないことや[単一ノード]より遅くなることもあります。

開始をクリックすると、トレーニングが始まり、トレーニング状況を確認できます。

トレーニング詳細

学習結果の適用

トレーニングが終わるとステータスが成功に変わり、適用ボタンが表示されます。適用ボタンをクリックすると、学習は終わりです。これで予測が行えます。

予測は、適用ボタンクリック後、時間を数分空けてから行ってください。現バージョンでは、適用後直ちに予測を行うとエラーになる可能性があります。もし、エラーになった場合は、しばらく時間を空けてから再度予測を行ってください。

予測

予測フロー作成

予測は、Big Data ボードで行います。予測を行うためのフローを作成します。

予測フロー

簡単に確認するために、Big Data ボードのブロックリストの「基本」から「オブジェクト生成」ブロックを使用します。

ここに予測したいあやめのデータを入れます。入力するデータは、以下のとおりです。

プロパティ
結果を格納する変数 _(既定値そのまま)
データ
オブジェクト生成ブロックのデータプロパティの例(分類)

ここでは、3 種類のあやめのデータで予測します。data.0 / data.1 / data.2 がそれぞれのあやめのデータです。オブジェクト生成ブロックでは、このような複数データを列挙する場合は、「Array」型を使用します。data.0 / data.1 / data.2 は、Array 横の「+」ボタンを使って追加します。

それぞれのあやめのデータは、「Object」型を使用して、データを識別するキー(key) / 萼片の長さ(sepal_length) / 萼片の幅(sepal_width) / 花弁の長さ(petal_length) / 花弁の幅(petal_width)をひとつにまとめます。まとめる各データは、Object 横の「+」ボタンを使って追加します。

次にブロックリストの「機械学習」から「MLボード予測(オンライン)」ブロックをフローに配置して、設定を行います。

プロパティ
GCPサービスアカウント (任意)
MLボード名 (MLボードで作成したボード名)
予測因子データの変数 _.data
予測結果変数 _out

予測結果をどのように使うのかは、いろいろな方法があると思いますが、ここでは結果を BigQuery に入れてみたいと思います。このためには、ブロックリストの「BigQuery」から「変数からテーブルへロード」ブロックを利用します。

プロパティ
GCPサービスアカウント (任意)
投入データの変数 _out.predictions
投入先のデータセット (任意)
投入先のテーブル iris_predict
スキーマ設定
key STRING NULLABLE
label STRING NULLABLE
label_index INTEGER NULLABLE
score FLOAT REPEATED

スキーマの設定は、スキーマ設定プロパティの「JSONで編集」リンクをクリックして、以下のコードを貼り付けると簡単です。

[
 {
  "name": "key",
  "type": "STRING",
  "mode": "NULLABLE"
 },
 {
  "name": "label",
  "type": "STRING",
  "mode": "NULLABLE"
 },
 {
  "name": "label_index",
  "type": "INTEGER",
  "mode": "NULLABLE"
 },
 {
  "name": "score",
  "type": "FLOAT",
  "mode": "REPEATED"
 }
]
空でないテーブルが存在したとき 上書き
ファイル形式 NEWLINE_DELIMITED_JSON

ブロックリストの「基本」から「ログへ出力」ブロックを使って、Big Data ボード上で結果を確認することもできます。

プロパティ
ログへ出力する変数 _out.predictions

予測の実施

さあこれで全て準備ができたので、予測を行ってみましょう。

フロー開始」ブロックプロパティの「」を押して予測を実行します。

予測結果はログに出力されているので、確認してみましょう。

[
  {
    "label_index": 1,
    "score": [
      0.10034828633069992,
      0.5175866484642029,
      0.3820650279521942
    ],
    "key": "1",
    "label": "Iris-versicolor"
  },
  {
    "label_index": 2,
    "score": [
      0.040482282638549805,
      0.45981335639953613,
      0.49970442056655884
    ],
    "key": "2",
    "label": "Iris-virginica"
    },
  {
    "label_index": 0,
    "score": [
      0.9810823202133179,
      0.01643194630742073,
      0.0024857944808900356
    ],
    "key": "3",
    "label": "Iris-setosa"
  }
]

出力内容は、「オブジェクト生成」ブロックで指定した「key」に対応した予測結果が「label」・「score」・「label_index」として出力されます。

label」の値は、どの種類かを表していて、以下のとおりとなっています。

  • "Iris-setosa":Iris setosa
  • "Iris-versicolor":Iris versicolour
  • "Iris-virginica":Iris virginica

score」は、どのくらいの可能性だと判断したかを表したものです。1.0 が 100% となります。

label_index」は、score のどの値が label として採用されたかをしめします。このケースでは、0score の先頭の値、1 がその次の値、2 が最後の値です。

MLボード予測(オンライン)」ブロックを使った予測の方法には、ここで紹介した方法以外にもいくつかります。ここで紹介した以外の予測方法については、「MLボード予測(オンライン)ブロックを使ったいろいろな予測の方法」を参照してください。