将机器学习和人工智能与 BigQuery DataFrames 搭配使用
BigQuery DataFrames 使用 bigframes.ml 库为 BigQuery DataFrames 提供机器学习和人工智能功能。
您可以预处理数据、创建 Estimator 以在 BigQuery DataFrames 中训练 模型、创建机器学习 流水线,以及拆分训练数据集和测试 数据集。
所需的角色
如需获得完成本文档中的任务所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
使用远程模型或人工智能功能:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
在 BigQuery 笔记本中使用 BigQuery DataFrames:
- BigQuery User (
roles/bigquery.user) - Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) - Code Creator (
roles/dataform.codeCreator)
- BigQuery User (
-
使用默认 BigQuery 连接:
- BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Connection Admin (
roles/bigquery.connectionAdmin) - Cloud Functions Developer (
roles/cloudfunctions.developer) - Service Account User (
roles/iam.serviceAccountUser) - Storage Object Viewer (
roles/storage.objectViewer)
- BigQuery Data Editor (
-
使用 BigQuery DataFrames ML 远程模型:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
机器学习位置
bigframes.ml 库支持与 BigQuery ML 相同的位置。所有 BigQuery 区域都支持 BigQuery ML 模型预测和其他机器学习函数。对模型训练的支持因区域而异。如需了解详情,请参阅 BigQuery ML 位置。
预处理数据
使用
bigframes.ml.preprocessing 模块
和
bigframes.ml.compose 模块创建 Transformer(转换器),以便准备好数据以用于 Estimator(模型)。
BigQuery DataFrames 提供以下转换:
如需将连续数据按间隔分箱,请使用
KBinsDiscretizer类 在bigframes.ml.preprocessing模块中。如需将目标标签标准化为整数值,请使用
LabelEncoder类 在bigframes.ml.preprocessing模块中。如需将每个特征按其最大绝对值缩放到
[-1, 1]范围, 请使用MaxAbsScaler类 在bigframes.ml.preprocessing模块中。如需通过将每个特征缩放到
[0, 1]范围来标准化特征,请使用MinMaxScaler类 在bigframes.ml.preprocessing模块中。如需通过移除平均值并伸缩到单位方差来标准化特征, 请使用
StandardScaler类 在bigframes.ml.preprocessing模块中。如需将分类值转换为数字格式,请使用
OneHotEncoder类 在bigframes.ml.preprocessing模块中。如需将 Transformer 应用于 DataFrame 列,请使用
ColumnTransformer类 中的bigframes.ml.compose模块。
训练模型
您可以创建Estimator以在 BigQuery DataFrames 中训练模型。
聚类模型
您可以使用
bigframes.ml.cluster模块为聚类模型创建 Estimator。
如需创建 K-means 聚类模型,请使用
KMeans 类。使用这些模型进行数据细分。例如,标识客户细分。K-means 是一种非监督式学习技术,因此模型训练不需要标签,也不需要为训练或评估拆分数据。
您可以使用 bigframes.ml.cluster 模块为聚类模型创建 Estimator。
以下代码示例展示如何使用 bigframes.ml.cluster KMeans 类创建用于数据细分的 k-means 聚类模型:
分解模型
您可以使用
bigframes.ml.decomposition 模块为分解模型创建 Estimator。
如需创建主成分分析 (PCA) 模型,请使用 PCA
类。使用这些模型计算主成分并使用主成分对数据执行基转换。使用 PCA
类可实现降维,具体方法是将每个数据点仅投影到前几个主成分上,以获得维度较低的数据,并保留尽可能多的数据差异性。
集成学习模型
您可以使用
bigframes.ml.ensemble 模块为集成学习模型创建 Estimator。
如需创建随机森林分类器模型,请使用
RandomForestClassifier类。使用这些模型构建多个学习方法决策树以用于分类。如需创建随机森林回归模型,请使用
RandomForestRegressor类。使用这些模型构建多个学习方法决策树以用于回归。如需创建梯度提升树分类器模型,请使用
XGBClassifier类。使用这些模型以累加方式构建多个学习方法决策树以用于分类。如需创建梯度提升树回归模型,请使用
XGBRegressor类。使用这些模型以累加方式构建多个学习方法决策树以用于回归。
预测模型
您可以使用
bigframes.ml.forecasting 模块为预测模型创建 Estimator。
如需创建时序预测模型,请使用
ARIMAPlus 类。
导入的模型
您可以使用
bigframes.ml.imported 模块为导入的模型创建 Estimator。
如需导入开放神经网络交换 (ONNX) 模型,请使用
ONNXModel类。如需导入 TensorFlow 模型,请使用
TensorFlowModel类。如需导入 XGBoostModel 模型,请使用
XGBoostModel类。
线性模型
使用
bigframes.ml.linear_model 模块为线性模型创建 Estimator。
如需创建线性回归模型,请使用
LinearRegression类。使用这些模型进行预测,例如预测给定日期的商品销售额。如需创建逻辑回归模型,请使用
LogisticRegression类。使用这些模型对两个或多个可能值进行分类,例如输入是low-value、medium-value还是high-value。
以下代码示例展示如何使用 bigframes.ml 执行以下操作:
- 从 BigQuery 加载数据。
- 清理和准备训练数据。
- 创建并应用 bigframes.ml.LinearRegression 回归模型。
大语言模型
您可以使用
bigframes.ml.llm 模块为 LLM 创建 Estimator。
如需创建 Gemini 文本生成工具模型,请使用
GeminiTextGenerator类。使用这些模型可执行文本生成任务。如需为远程大语言模型 (LLM) 创建 Estimator,请使用
bigframes.ml.llm模块。
以下代码示例展示如何使用 bigframes.ml.llm
GeminiTextGenerator
类创建用于生成代码的 Gemini 模型:
远程模型
如需使用 BigQuery DataFrames ML 远程模型(bigframes.ml.remote 或 bigframes.ml.llm),您必须启用以下
API: