一种用于持久化和跟踪机器学习模型的django模型
django-estimators的Python项目详细描述
django估计量
机器学习的整洁持久性和检索
简介
django估计器帮助持久化和跟踪机器学习模型(aka估计器)和数据集。
这个库提供了一系列代理对象,这些对象包装了常用的python机器学习对象和数据集对象。因此,此库可用于版本、跟踪进度和部署模型。它具有高度的可扩展性,几乎可以与任何python对象(scikit learn、numpy数组、模块、方法)一起使用。
此回购协议使用django作为orm。如果您想在django之外工作,请尝试使用基于sqlalchemy的estimators库。
安装
django估计器在pypi上,所以运行:
pip install django-estimators
快速启动
一。将“Estimators”添加到已安装的应用程序django设置中,如下所示
INSTALLED_APPS = [ ... 'estimators', ]
2.要创建Estimators表,请运行
python manage.py migrate
三。运行python manage.py shell并创建像so这样的新模型
from sklearn.ensemble import RandomForestClassifier rfc = RandomForestClassifier() from estimators.models import Estimator est = Estimator(estimator=rfc) est.description = 'a simple forest' est.save()
四。使用经典的django orm检索您的模型,我们可以提取最后一个估计器
est = Estimator.objects.last() # now use your estimator est.estimator.predict(X)
用例:检索模型/估计器
如果您不确定它是否存在,推荐的方法是使用
est = Estimator.objects.get_or_create(estimator=object) # or potentially update it with update_or_create est = Estimator.objects.update_or_create(estimator=object)
如果您已经有了模型,在本例中输入object
est = Estimator.objects.filter(estimator=object).first()
如果您知道模型的唯一散列
est = Estimator.objects.filter(object_hash='d9c9f286391652b89978a6961b52b674').first()
用例:持久化和检索数据集
数据集类的功能与估计器类类似。如果你有 一个numpy矩阵或pandas数据框,您可以用一个dataset对象将其包装起来
import numpy as np import pandas as pd df = pd.DataFrame(np.random.randint(0,10,(100,8))) from estimators.models import DataSet ds = DataSet(data=df) ds.save()
以后可以使用
ds = DataSet.objects.latest('create_date')
如果你已经有了数据集
ds = DataSet.objects.filter(data=df).first()
用例:持续预测和结果
有时机器学习最有价值的部分是整个过程。 使用Evaluator对象,我们可以定义x_test、y_test和 你提前预测了。
然后我们可以评估评估计划,它反过来调用估计器上的predict方法 然后预先列出所有包装的对象。
这是一个使用计算器的演示。
from sklearn.datasets import load_digits from sklearn.ensemble import RandomForestClassifier digits = load_digits() # 1797 by 64 X = digits.data y = digits.target # simple splitting for validation testing X_train, X_test = X[:1200], X[1200:] y_train, y_test = y[:1200], y[1200:] rfc = RandomForestClassifier() rfc.fit(X_train, y_train)
现在创建评估计划
from estimators.models import Evaluator plan = Evaluator(X_test=X_test, y_test=y_test, estimator=rfc) result = plan.evaluate() # executes `predict` method on X_test
您可以查看评估结果上的所有属性
result.estimator result.X_test result.y_test # optional, used with supervised classifiers result.y_predicted
与Jupyter笔记本一起使用(或不使用django应用程序)
django估计器可以作为一个独立的django应用程序运行。为了能够访问django db,您需要设置环境变量来加载django项目。在ipython中,默认情况下可以将环境变量DJANGO_SETTINGS_MODULE设置为estimators.template_settings,如下所示
import os import django os.environ['DJANGO_SETTINGS_MODULE'] = "estimators.template_settings" django.setup()
如果要创建新数据库(默认情况下是db.sqlite3)。因此我们需要运行迁移,所以在python中
from django.core.management import call_command call_command('migrate')
现在您可以像往常一样继续…
from estimators.models import Estimator
要使用自己的自定义设置,请复制estimators.template_settings,然后编辑字段。像上面一样,在运行django.setup()之前运行os.environ['DJANGO_SETTINGS_MODULE'] = "custom_settings_file"。
开发安装
要安装最新版本的django估计器,请克隆repo,将目录更改为repo,然后pip将其安装到当前的虚拟环境中。
$ git clone git@github.com:fridiculous/django-estimators.git $ cd django-estimators $ <activate your project’s virtual environment> (virtualenv) $ pip install -e . # the dot specifies for this current repo