scikit-learn - Google Cloud ML Engine 的 scikit-learn 框架中的自定义依赖项

标签 scikit-learn google-cloud-ml

我正在寻找在我的 ML 项目中添加用户定义函数和自定义转换器的可能性,但我只找到了如何在 Tensor-Flow 框架中执行此操作的示例。

我已经创建了一个可以使用 pip 安装的自定义包,但我不知道 setup.py 文件在 scikit-learn 框架中应该是什么样子。

如果你能给我一些提示,我会很高兴。

我尝试部署的管道如下所示:

from custscaler import StdScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import Pipeline   

knn_pipe = Pipeline([
    ('my_std', StdScaler(5) ),
    ('my_knn',KNeighborsClassifier(n_neighbors=7)) 
    ])

model = knn_pipe.fit(X_train, Y_train)

自定义转换器:
/custscaler/__init__.py

from .fct1 import StdScaler

/custscaler/fct1.py

from sklearn import base


class StdScaler(base.BaseEstimator, base.TransformerMixin):

    def __init__(self, scaling_factor):
        self.scaling_factor = scaling_factor

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        data = [ [el*self.scaling_factor for el in row] for row in X ]
        return data

最佳答案

无论框架如何,打包依赖项都是一样的。虽然 setup.py 是一个通用构造,但 CloudML Engine 页面 ( link ) 上给出了一些建议

特别是,这个数字应该有帮助:

Recommended Project Structure

在您的情况下,执行 knn_pipe.fit 的代码片段将在 trainer 内,而 custscaler 将是“other_subpackage”图。

setup.py 中的“魔法位”是一行:

packages=find_packages()

这将包括 trainercustscaler(假设他们有 __init__.py)。

关于scikit-learn - Google Cloud ML Engine 的 scikit-learn 框架中的自定义依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995645/

相关文章:

python - Google App Engine 应用程序是否可以交流或控制机器学习模型或任务?

google-cloud-ml - Cloud-ML 作业 没有这样的文件或目录

google-cloud-platform - 谷歌人工智能平台与机器学习引擎

google-cloud-platform - 从 Google Cloud Datalab 笔记本下载保存的模型

python - 为什么随机森林的大小随着训练样本数量的增加而增加?

python - 防止随机森林回归器中数据泄漏的建议

python - 平均(似然)编码

python - 自定义 Sklearn Transformer 单独工作,在管道中使用时抛出错误

python - 在 sci-kit learn 中使用 libSVM 或在 R 中使用 e1070 进行训练和使用支持向量机有什么区别?

python - 在错误的 python 版本上运行的 ML 引擎批量预测