ML.ROC_CURVE 関数

dynamic setvar launch_stage beta dynamic endsetvar dynamic setvar launch_type product dynamic endsetvar dynamic setvar launch_name BigQuery ML dynamic endsetvar dynamic include /docs/includes/___info_launch_stage_disclaimer

ML.ROC_CURVE 関数

ロジスティック回帰特有の指標を評価するには、ML.ROC_CURVE 関数を使用します。ML.ROC_CURVE はロジスティック回帰モデルのみを評価します。

出力の ML.ROC_CURVE 関数には複数の行が含まれ、各行にはモデルのさまざまなしきい値の指標が含まれています。指標には次のものがあります。

  • threshold
  • recall
  • false_positive_rate
  • true_positives
  • false_positives
  • true_negatives
  • false_negatives

ML.ROC_CURVE の構文

ML.ROC_CURVE(MODEL model_name,
            {TABLE table_name | (query_statement)},
            [GENERATE_ARRAY(thresholds)])

model_name

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

モデルの入力列名とデータ型は、テーブルの列名とデータ型と一致する必要があります。

table_name

table_name は、評価データを含む入力テーブルの名前です。デフォルト プロジェクトを構成していない場合は、`[PROJECT_ID].[DATASET].[TABLE]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.mytable`)。

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

query_statement

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

query_statement で参照されているすべての列がモデルへの入力として使用されます。

thresholds

(省略可)thresholds は、GENERATE_ARRAY 関数を介して提供される予測出力のパーセンタイル値です。DOUBLE 型の値を指定する必要があります。

使用するしきい値を指定しない場合、100 個の近似値を使用して予測出力の値に基づいて自動的に選択されます(APPROX_QUANTILES(predicted_label, 100))。

ML.ROC_CURVE の例

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

ロジスティック回帰モデルの ROC 曲線を評価する

次のクエリは、thresholdrecallfalse_positive_ratetrue_positivesfalse_positivestrue_negativesfalse_negatives 列を返します。ROC 曲線では、再現率と偽陽性率をグラフ化できます。返されるしきい値は、予測出力のパーセンタイル値に基づいて選択されます。

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

カスタムしきい値で ROC 曲線を評価する

次のクエリは前の例と同じ列を返します。返されるしきい値は、GENERATE_ARRAY 関数の出力に基づいて選択されます。

SELECT
  *
FROM
  ML.ROC_CURVE(MODEL `mydataset.mymodel`,
    TABLE `mydataset.mytable`,
    GENERATE_ARRAY(0.4,0.6,0.01))

適合率/再現率曲線を評価する

次のクエリでは、ROC 曲線(再現対偽陽性率)を取得する代わりに、真陽性数と偽陽性数の精度を使用して適合率/再現率曲線を計算します。

SELECT
  recall,
  true_positives / (true_positives + false_positives) AS precision
FROM
  ML.ROC_CURVE(MODEL `mydataset.mymodel`,
    TABLE `mydataset.mytable`)
このページは役立ちましたか?評価をお願いいたします。

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

ご不明な点がありましたら、Google のサポートページをご覧ください。