ML.CONFUSION_MATRIX 関数

ML.CONFUSION_MATRIX 関数

ML.CONFUSION_MATRIX 関数を使用して、所定のロジスティック回帰モデルと入力データの混同行列を返します。ML.CONFUSION_MATRIX 関数は、ロジスティック回帰モデルと多項ロジスティック回帰モデルの両方で使用できます。ML.CONFUSION_MATRIX は、線形回帰モデルをサポートしていません。

ML.CONFUSION_MATRIX 関数の出力列はモデルによって異なります。最初の出力列は常に expected_label です。トレーニング済みモデルの各クラスに 1 つずつ、N 個の列が追加されます。追加の列の名前は、モデルのトレーニングに使用したクラスラベルによって異なります。

トレーニング クラスのラベルがすべて BigQuery の列の命名規則に準拠している場合、ラベルが列名として使用されます。命名規則に準拠していない列は、列の命名規則に準拠して一意になるように変更されます。たとえばラベルが 01 の場合、出力列名は _0_1 になります。

列は、クラスラベルに基づいて昇順に並べられます。評価データのラベルがトレーニング データのラベルと一致する場合、真陽性は左上から右下の対角線上に表示されます。予測される(または実際の)ラベルは行ごとに 1 つずつ表示され、列ごとに 1 つずつ表示されます。

expected_label 列の値は、評価データのラベル列の ML.CONFUSION_MATRIX に渡される正確な値と型です。これは、トレーニング中に使用される値や型と完全には一致しない場合でも当てはまります。

ML.CONFUSION_MATRIX の構文

ML.CONFUSION_MATRIX(MODEL model_name
           [, {TABLE table_name | (query_statement)}]
           [, STRUCT(<T> AS threshold)])

model_name

model_name は、評価するモデルの名前です。デフォルト プロジェクトを構成していない場合は、`[PROJECT_ID].[DATASET].[MODEL]`(バッククォートを含む)の形式でプロジェクト ID をモデル名の前に追加します(例: `myproject.mydataset.mymodel`)。

table_name

(省略可)table_name は、評価データを含む入力テーブルの名前です。デフォルト プロジェクトを構成していない場合は、`[PROJECT_ID].[DATASET].[TABLE]`(バッククォートを含む)の形式でプロジェクト ID をテーブル名の前に追加します(例: `myproject.mydataset.mytable`)。

table_name が指定されている場合、テーブルの入力列名はモデルの列名と一致する必要があります。また、型は BigQuery の暗黙の強制変換ルールに従って互換性がある必要があります。入力には、トレーニング中に提供されたラベル列名と一致する列が必要です。この値は、input_label_cols オプションで指定します。input_label_cols が未指定の場合は、トレーニング データで「label」という名前の列が使用されます。

table_namequery_statement も指定しない場合、ML.CONFUSION_MATRIX は次のように混同行列の結果を計算します。

  • トレーニング中にデータを分割する場合、分割評価データを使用して混同行列の結果を計算します。
  • トレーニング中にデータを分割しない場合、トレーニング入力全体を使用して混同行列の結果を計算します。

query_statement

(省略可)query_statement 句は、評価データの生成に使用する標準 SQL クエリを指定します。query_statement 句でサポートされる SQL 構文については、標準 SQL クエリ構文ページをご覧ください。

query_statement が指定されている場合、クエリからの入力列名はモデルの列名と一致する必要があります。また、型は BigQuery の暗黙の強制型変換ルールに従って互換性がある必要があります。入力には、トレーニング中に提供されたラベル列名と一致する列が必要です。この値は、input_label_cols オプションで指定します。input_label_cols が未指定の場合は、トレーニング データで「label」という名前の列が使用されます。

table_namequery_statement も指定しない場合、ML.CONFUSION_MATRIX は次のように混同行列の結果を計算します。

  • トレーニング中にデータを分割する場合、分割評価データを使用して混同行列の結果を計算します。
  • トレーニング中にデータを分割しない場合、トレーニング入力全体を使用して混同行列の結果を計算します。

threshold

(省略可)threshold は、評価に使用するロジスティック回帰モデルのカスタムしきい値です。デフォルト値は 0.5 です。STRUCT 型のしきい値を指定する必要があります。

適合率/再現率の値がゼロの場合、選択したしきい値は真陽性のラベルを生成していません。適合率の値が NaN の場合、選択したしきい値は陽性ラベル(真陽性と偽陽性)を生成していません。

ML.CONFUSION_MATRIX の例

次の例では、デフォルト プロジェクトにモデルと入力テーブルがあることを前提としています。

ロジスティック回帰モデルの混同行列を返すには、次のクエリを使用します。

SELECT
  *
FROM
  ML.CONFUSION_MATRIX(MODEL `mydataset.mymodel`,
  (
    SELECT
      *
    FROM
      `mydataset.mytable`))

ML.CONFUSION_MATRIX の制限

ML.CONFUSION_MATRIX 関数には、次の制限があります。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...