如何在BigQuery ML中使用PCA模型完成分类任务
解决BigQuery中PCA模型结合分类任务的步骤
PCA是无监督降维模型,本身无法直接完成分类任务,你需要先通过它提取低维特征,再用这些特征训练分类模型,具体步骤如下:
1. 生成PCA降维后的特征表
使用ML.PREDICT函数,基于已训练的PCA模型将原始数据转换为低维特征,同时保留分类任务需要的标签列(target),并保存为新表:
CREATE OR REPLACE TABLE `mydataset.pca_features` AS SELECT target, * EXCEPT(target) FROM ML.PREDICT( MODEL `mydataset.mymodel`, (SELECT * FROM `mydataset.mytable`) )
2. 用PCA特征训练分类模型
选择合适的分类模型(比如逻辑回归、随机森林),以生成的PCA特征作为输入,target作为标签进行训练:
-- 示例:训练逻辑回归分类模型 CREATE OR REPLACE MODEL `mydataset.classification_model` OPTIONS( MODEL_TYPE='LOGISTIC_REG', INPUT_LABEL_COLS=['target'], AUTO_CLASS_WEIGHTS=TRUE ) AS SELECT * FROM `mydataset.pca_features`
3. 评估分类模型
此时就可以使用分类相关的ML函数评估模型效果:
- 查看整体评估指标:
SELECT * FROM ML.EVALUATE(MODEL `mydataset.classification_model`, (SELECT * FROM `mydataset.pca_features`)) - 生成混淆矩阵:
SELECT * FROM ML.CONFUSION_MATRIX(MODEL `mydataset.classification_model`, (SELECT * FROM `mydataset.pca_features`)) - 生成ROC曲线数据:
SELECT * FROM ML.ROC_CURVE(MODEL `mydataset.classification_model`, (SELECT * FROM `mydataset.pca_features`))
补充说明
你之前调用ML.EVALUATE在PCA模型上,只能得到降维效果的评估(比如解释方差比例),但PCA不具备分类能力,因此必须先完成特征转换和分类模型训练,才能使用混淆矩阵、ROC等分类评估工具。
内容的提问来源于stack exchange,提问作者Adam D. Silva
相关产品推荐
相关产品推荐

