提供歷來特徵值

如要擷取或提供目前和歷來的特徵資料,請使用離線服務從 BigQuery 擷取特徵值。舉例來說,您可以使用離線放送功能,擷取特定時間戳記的特徵值來訓練模型。

所有特徵資料 (包括歷來特徵資料) 都會保留在 BigQuery 中,這就是特徵值的離線儲存庫。如要使用離線服務,請先建立特徵群組和特徵值,註冊 BigQuery 資料來源。此外,如果是離線放送,含有相同實體 ID 的每一列都必須有不同的時間戳記。如要進一步瞭解資料來源準備指南,請參閱「準備資料來源」。

事前準備

Gemini Enterprise Agent Platform 驗證,除非您已完成驗證。

如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。

  1. 安裝 Google Cloud CLI。

  2. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  3. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

    gcloud auth application-default login

    如果您使用 Cloud Shell,則不需要執行這項操作。

    如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI

詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。

擷取歷來特徵值

使用下列範例,從多個實體 ID 和時間戳記擷取特徵的歷來值。

Python

在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Agent Platform Python API 參考文件

如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。

import bigframes
import bigframes.pandas
import pandas as pd
from google.cloud import bigquery
from vertexai.resources.preview.feature_store import (Feature, FeatureGroup, offline_store)
from vertexai.resources.preview.feature_store import utils as fs_utils

fg = FeatureGroup("FEATURE_GROUP_NAME")
f1 = fg.get_feature("FEATURE_NAME_1")
f2 = fg.get_feature("FEATURE_NAME_2")

entity_df = pd.DataFrame(
  data={
    "ENTITY_ID_COLUMN": [
      "ENTITY_ID_1",
      "ENTITY_ID_2",
    ],
    "timestamp": [
      pd.Timestamp("FEATURE_TIMESTAMP_1"),
      pd.Timestamp("FEATURE_TIMESTAMP_2"),
    ],
  },
)

offline_store.fetch_historical_feature_values(
  entity_df=entity_df,
  features=[f1,f2],
)

更改下列內容:

  • FEATURE_GROUP_NAME:包含特徵的現有特徵群組名稱。

  • FEATURE_NAME_1FEATURE_NAME_2:要從中擷取特徵值的已註冊特徵名稱。

  • ENTITY_ID_COLUMN:包含實體 ID 的資料欄名稱。 只有在特徵群組中註冊的資料欄名稱,才能指定為資料欄名稱。

  • ENTITY_ID_1ENTITY_ID_2:要擷取特徵值的實體 ID。如要在不同時間戳記擷取相同實體 ID 的特徵值,請為每個時間戳記指定對應的實體 ID。

  • FEATURE_TIMESTAMP_1FEATURE_TIMESTAMP_2:您要擷取歷史特徵值的時間戳記。FEATURE_TIMESTAMP_1 對應於 ENTITY_ID_1FEATURE_TIMESTAMP_2 對應於 ENTITY_ID_2,依此類推。以日期時間格式指定時間戳記,例如 2024-05-01T12:00:00