ML.WEIGHTS 関数

ML.WEIGHTS 関数

ML.WEIGHTS 関数を使用すると、予測中にモデルが使用する基本的な重みを確認できます。

ML.WEIGHTS は次の列を返します。

  • processed_input - モデル特徴の入力名。この列の値は、トレーニング中に使用する SELECT ステートメントの列名と一致します。
  • weight - 各特徴の重み。数値列の場合、weight には値が入り、category_weights 列は NULL になります。数値以外の列はワンホット エンコーディングに変換されるため、weight 列は NULL になり、category_weights 列は各カテゴリのカテゴリ名と重みの配列になります。
  • category_weights.category - 入力列が数値以外の場合、カテゴリ名。
  • category_weights.weight - 入力列が数値以外の場合、カテゴリの重み。
  • class_label - マルチクラス モデルの場合、class_label は所定の重みのラベルです。出力は、<class_label, processed_input> の組み合わせごとに 1 行ずつです。

TIMESTAMPprocessed_input の結果

BigQuery ML は、TIMESTAMP 列を検出すると TIMESTAMP から一連のコンポーネントを抽出し、抽出したコンポーネントに標準化とワンホット エンコーディングの組み合わせを実施します。ML.WEIGHTS 関数を使用すると、変換結果が processed_input 列に表示されます。

次の表に、TIMESTAMP から抽出されたコンポーネントと対応する変換方法を示します。processed_input 値で、[COLUMN_NAME]TIMESTAMP 列の名前です。

TIMESTAMP コンポーネント processed_input の結果 変換方法
秒単位の Unix 時間 [COLUMN_NAME] 標準化
_TS_DOM_[COLUMN_NAME] ワンホット エンコーディング
曜日 _TS_DOW_[COLUMN_NAME] ワンホット エンコーディング
_TS_MOY_[COLUMN_NAME] ワンホット エンコーディング
時間帯 _TS_HOD_[COLUMN_NAME] ワンホット エンコーディング
_TS_MOH_[COLUMN_NAME] ワンホット エンコーディング
週(週の開始は日曜日) _TS_WOY_[COLUMN_NAME] ワンホット エンコーディング
_TS_YEAR_[COLUMN_NAME] ワンホット エンコーディング

ML.WEIGHTS の構文

ML.WEIGHTS(MODEL `project_id.dataset.model`)
          [, STRUCT(<T> as standardize)])

ここで:

  • project_id はプロジェクト ID です。
  • dataset は、モデルを含む BigQuery データセットです。
  • model は、モデルの名前です。
  • standardize は、省略可能なパラメータです。すべての特徴の平均が 0 で標準偏差が 1 であると仮定するためにモデルの重みを標準化するかどうかを決定します。重みを標準化すると、重みの絶対値の大小を互いに比較できます。デフォルト値は false です。指定する値は、STRUCT の唯一のフィールドである必要があります。

ML.WEIGHTS の例

標準化なしの ML.WEIGHTS

次の例では、mydatasetmymodel から重み情報を取得します。このデータセットはデフォルト プロジェクトにあります。

入力列 input_col に対して、ワンホット エンコーディングされた各カテゴリの重みが返されます。

SELECT
  category,
  weight
FROM
  UNNEST((
    SELECT
      category_weights
    FROM
      ML.WEIGHTS(MODEL `mydataset.mymodel`)
    WHERE
      processed_input = 'input_col'))

category_weights 列がネストされた繰り返し列のため、このコマンドでは UNNEST 関数を使用しています。

標準化ありの ML.WEIGHTS

次の例では、mydatasetmymodel から重み情報を取得します。このデータセットはデフォルト プロジェクトにあります。

このクエリは、標準化された重みを取得します。すべての特徴の平均が 0 で標準偏差が 1 であると仮定します。

SELECT
  *
FROM
  ML.WEIGHTS(MODEL `mydataset.mymodel`,
    STRUCT(true AS standardize))

ML.WEIGHTS の制限

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

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

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