Skip to main content
 首页 » 编程设计

postgresql之将分类器保存到 postrgesql 数据库,在 scikit-learn 中

2024年10月24日16duanxz

我知道 scikit-learn 模型可以通过使用 joblib(如此处所述:http://scikit-learn.org/stable/modules/model_persistence.html)保存在文件中。
但是,由于我在 postgresql plpythonu 函数中有机器学习过程,我宁愿将模型持久化在 Postgresql 数据库中。

什么是推荐的,在 Postgresql 数据库中存储 scikit-learn 模型的最方便的方法?

请您参考如下方法:

如果您使用的是 Django,则可以将 sci-kit 学习模型二值化
使用泡菜,然后将其保存到
具有 BinaryField 成员的表。
一个简单的例子:
views.py(保存)

from sklearn import svm 
import pickle 
from ml.models import MlModels 
from rest_framework.response import Response 
 
@api_view(['GET']) 
def save(request): 
  if request.method == 'GET': 
    X = [[0.12, 22, 33, 100], [0.19, 19, 99, 33], [0.5, 50, 150, 0]] 
    y = [1, 0, 1] 
    model = svm() 
    model.fit(X=X, y=y) 
    data = pickle.dumps(model) 
    MlModels.objects.create(model=data) 
    return Response(status=status.HTTP_200_OK) 
模型.py
from django.db import models 
 
class MlModels(models.Model): 
    model       =   models.BinaryField() 
views.py(使用)
import pickle 
from ml.models import MlModels 
from rest_framework.response import Response 
 
@api_view(['GET']) 
def predict(request): 
    if request.method == "GET": 
        X = [[0.12, 22, 33, 100]] 
        raw_model = MlModel.objects.all()[0] 
        model = pickle.loads(raw_model.model) 
        print(model.predict(X)) 
        return Response(status=status.HTTP_200_OK)