You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将自定义Sklearn模型上传至Google Cloud ML Engine?

解决GCP ML Engine部署Scikit-learn GaussianMixture模型时输出概率而非类别预测的问题

我最近在跟着GCloud教程把Scikit-learn模型部署到ML Engine时,碰到了一个需求:默认的GaussianMixture估计器调用predict方法会返回类别预测,但我需要的是样本的概率得分(也就是score_samples方法输出的结果)。为了满足这个需求,我给GaussianMixture写了一个包装类,重写了predict方法,直接返回概率得分。

包装类实现代码

创建一个名为GMMWrapper.py的文件,内容如下:

from sklearn.mixture import GaussianMixture

class GMMWrapper(GaussianMixture):
    def predict(self, X):
        # 重写predict方法,替换为返回score_samples的概率结果
        return self.score_samples(X)

创建并保存部署用的管道

接下来就可以按照标准流程构建包含这个包装类的机器学习管道,并保存用于ML Engine部署:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
import joblib

# 初始化包装后的GMM模型
gmm = GMMWrapper()
# 构建包含预处理和模型的管道(这里以标准化为例,你可以根据需求调整)
pipegmm = Pipeline([
    ('feature_scaling', StandardScaler()),
    ('gmm_model', gmm)
])

# 用训练数据拟合管道(假设X_train是你的训练特征数据)
pipegmm.fit(X_train)

# 保存模型文件,用于上传到GCP ML Engine
joblib.dump(pipegmm, 'gmm_model.joblib')

这样部署到ML Engine之后,调用预测接口时就会返回每个输入样本的概率得分,而不是默认的类别预测结果了。

内容的提问来源于stack exchange,提问作者NickDGreg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:28:41