BigQuery ML モデルの評価の概要
このドキュメントでは、BigQuery ML が機械学習(ML)モデルの評価をサポートする仕組みについて説明します。
モデル評価の概要
ML モデルの評価指標は、次の目的で使用できます。
- モデルとデータの間の適合性の品質を評価する。
- さまざまなモデルを比較する。
- モデル選択のコンテキストにおいて、特定のデータセットでの各モデルに期待できる実行精度を予測する。
教師ありの学習モデルと教師なしの学習モデルでは、評価の仕組みが異なります。
- 教師あり学習モデルでは、モデルの評価が明確に定義されます。評価セット(モデルで分析されていないデータ)は通常、トレーニング セットから除外され、モデルのパフォーマンスの評価に使用されます。新しいデータの予測結果を一般化する際にモデルのパフォーマンスが低下するため、評価にトレーニング セットを使用しないことをおすすめします。この結果を過剰適合といいます。
- 教師なし学習モデルでは、モデルの評価は教師ありモデルほど定義されておらず、通常はモデルによって異なります。教師なし学習モデルでは評価セットが予約されないため、評価指標は入力データセット全体を使用して計算されます。
各モデルタイプでサポートされている SQL ステートメントと関数については、各モデルのエンドツーエンドのユーザー ジャーニーをご覧ください。
モデル評価サービス
BigQuery ML には、ML モデルの評価指標を計算する次の関数が用意されています。
モデルカテゴリ | モデルタイプ | モデル評価関数 | 関数の動作 |
---|---|---|---|
教師あり学習 | 線形回帰 ブーストツリー リグレッサー ランダム フォレスト リグレッサー DNN リグレッサー ワイド&ディープ リグレッサー AutoML Tables リグレッサー |
ML.EVALUATE |
次の指標を報告します。
|
ロジスティック回帰 ブーストツリー分類器 ランダム フォレスト分類器 DNN 分類器 ワイド&ディープ分類器 AutoML Tables 分類器 |
ML.EVALUATE |
次の指標を報告します。
|
|
ML.CONFUSION_MATRIX |
混同行列を報告します。 | ||
ML.ROC_CURVE |
次のような各種しきい値の指標を報告します。
バイナリクラスの分類モデルにのみ適用されます。 |
||
教師なし学習 | K 平均法 | ML.EVALUATE |
Davies-Bouldin インデックスと、割り当てられたクラスタのセントロイドとデータポイント間の平均二乗距離を報告します。 |
行列分解 | ML.EVALUATE |
明示的なフィードバック ベースのモデルの場合、次の指標を報告します。
|
|
暗黙的フィードバック ベースのモデルの場合、次の指標を報告します。
|
|||
PCA | ML.EVALUATE |
主成分の分散比の合計を報告します。 | |
オートエンコーダ | ML.EVALUATE |
次の指標を報告します。
|
|
時系列 | ARIMA_PLUS | ML.EVALUATE
| 次の指標を報告します。
この関数には入力として新しいデータが必要です。 |
ML.ARIMA_EVALUATE
| 異なる (p, d, q, has_drift) タプルによって特徴付けられるすべての ARIMA 候補モデルについて、次の指標を報告します。
季節性、休日効果、急上昇や急降下の外れ値に関するその他の情報も報告します。 この関数は入力として新しいデータを必要としません。 |
CREATE MODEL
ステートメントでの自動評価
BigQuery ML は、モデル作成時に自動評価をサポートします。モデルタイプ、データ分割トレーニング オプション、ハイパーパラメータ チューニングを使用しているかどうかに応じて、評価指標は予約済みの評価データセット、予約済みのテスト データセット、または入力全体に基づいて計算されます。
K 平均法、PCA、オートエンコーダ、ARIMA_PLUS モデルの場合、BigQuery ML はすべての入力データをトレーニング データとして使用し、入力データセット全体に対して評価指標が計算されます。
線形回帰、ロジスティック回帰、ブーストツリー、ランダム フォレスト、DNN、ワイド&ディープ、行列分解モデルの場合、次の
CREATE MODEL
オプションで指定されるデータセットに対して評価指標が計算されます。ハイパーパラメータ チューニングを使用してこれらのタイプのモデルをトレーニングする場合は、
DATA_SPLIT_TEST_FRACTION
オプションを使用して、評価指標の計算対象となるデータセットを定義することもできます。詳細については、データ分割をご覧ください。AutoML Tables モデルについては、トレーニングと評価のためのデータ分割が使用される方法をご覧ください。
モデルの作成時に計算された評価指標を取得するには、入力データを指定されていないモデルに対して ML.EVALUATE
などの評価関数を使用します。例については、入力データが指定されていない ML.EVALUATE
をご覧ください。
新しいデータセットを使用した評価
モデルの作成後に、評価に使用する新しいデータセットを指定できます。新しいデータセットを提供するには、入力データが指定されているモデルで ML.EVALUATE
などの評価関数を使用します。例については、カスタムしきい値と入力データを伴う ML.EVALUATE
をご覧ください。