数据管理框架,用于数据科学和机器学习的流水线

DaMa-ML的Python项目详细描述


https://travis-ci.org/elaeon/dama_ml.svg?branch=masterhttps://api.codacy.com/project/badge/Grade/0ab998e72f4f4e31b3dc7b3c9921374a

概述

dama-ml是一个用于数据管理的框架,用于数据科学和机器学习的管道,dama-ml试图统一csv、sql db、hdf5、zarr等不同的数据源,并通过一个简化的接口统一机器学习框架(sklearn、keras、ligthgbm等)。

有关详细信息,请阅读docs

警告

Although, the API is stable this work is in alpha steps and there are methods that have limited functionality or aren’t implemented.

安装

git clone https://github.com/elaeon/dama_ml.git
pip install dama_ml/

pip install DaMa-ML

您可以使用pip安装python依赖项,但我们强烈建议使用conda和conda forge安装依赖项。

conda config --add channels conda-forge
conda create -n new_environment --file dama_ml/requirements.txt
conda activate new_environment
pip install DaMa-ML

快速启动

配置将保存所有数据的数据路径。这可以在dama_ml cli工具的帮助下完成。

$dama-cliconfig--edit

这将显示一个nano编辑器,您可以在其中编辑数据路径、模型路径、代码路径、类路径和元数据路径。

  • 数据路径是保存所有数据集的位置。
  • 模型路径是保存模型中所有文件的位置。
  • 代码路径是代码的存储库。(开发中)
  • 元数据路径是保存元数据数据库的位置。

建立数据集

fromdama.data.dsimportDatafromdama.drivers.coreimportZarr,HDF5importnumpyasnparray_0=np.random.rand(100,1)array_1=np.random.rand(100,)array_2=np.random.rand(100,3)array_3=np.random.rand(100,6)array_4=(np.random.rand(100)*100).astype(int)array_5=np.random.rand(100).astype(str)withData(name=name,driver=Zarr(mode="w"))asdata:data.from_data({"x":array_0,"y":array_1,"z":array_2,"a":array_3,"b":array_4,"c":array_5})

我们可以使用回归模型,在这种情况下,我们使用randomForestRegressor

fromdama.reg.extended.w_sklearnimportRandomForestRegressorfromdama.utils.model_selectionimportCVdata.driver.mode="r"# we changed mode "w" to "r" to not overwrite the data previously savedwithdata,Data(name="test_from_hash",driver=HDF5(mode="w"))asds:cv=CV(group_data="x",group_target="y",train_size=.7,valid_size=.1)# cross validation classstc=cv.apply(data)ds.from_data(stc,from_ds_hash=data.hash)reg=RandomForestRegressor()model_params=dict(n_estimators=25,min_samples_split=2)reg.train(ds,num_steps=1,data_train_group="train_x",target_train_group='train_y',data_test_group="test_x",target_test_group='test_y',model_params=model_params,data_validation_group="validation_x",target_validation_group="validation_y")reg.save(name="test_model",model_version="1")

使用RandomForestRecessor进行预测如下:

withRandomForestRegressor.load(model_name="test_model",model_version="1")asreg:forpredinreg.predict(data):prediction=pred.batch.to_ndarray()

cli

dama ml有一个cli,您可以在其中查看数据集和模型。 例如

dama-cli datasets

返回以前保存的数据集表。

Usingmetadata..../metadata/metadata.sqlite3Total2/2hashnamedrivergroupnamesizenumgroupsdatetimeUTC----------------------------------------------------------------------------------------------sha1.3124d5f16eb0e...test_from_hashHDF5s/n9.12KB62019-02-2719:39:00sha1.e832f56e33491...reg0Zarrs/n23.68KB62019-02-2719:39:00
dama-cli models
Total 3 / 3
from_ds                       name      group_name    model                                                version     score name        score
-------------------------  ----------  ------------  -------------------------------------------------  ---------  ---------------  ----------
sha1.d8ff5a342d2d7229...  test_model  s/n           dama.reg.extended.w_sklearn.RandomForestRegressor          1  mse               0.162365
sha1.d8ff5a342d2d7229...  test_model  s/n           dama.reg.extended.w_sklearn.RandomForestRegressor          1  msle              0.0741331
sha1.d8ff5a342d2d7229...  test_model  s/n           dama.reg.extended.w_sklearn.RandomForestRegressor          1  gini_normalized  -0.307407

您可以使用“–help”查看更多选项。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何调试Quarkus/SmallRye客户端请求   安卓找不到R.layout。主要活动中的主要活动。JAVA   java使复制的图像都独立旋转   java需要一双新眼睛来找出为什么我的四边形没有被着色   java记录方法调用,包括参数,以便在程序执行后可以执行这些参数   JavaSpringMVC+AngularJS向数据库添加多个条目   java删除具有重复字段值的entrySet对象   为什么我们无法解密使用ECB/PKCS1使用RSA加密在python中加密的java数据   并行处理java。util。同时发生的拒绝执行异常,等待终止   java/groovy使用指定的值从列表中收集元素   java在spring webproject中使用CSS和JS   在以下任何来源中都找不到java插件[id:'com.gradle.enterprise',版本:'3.2']   在java中知道时间是否已经过去的日期   java如何在JavaFX中为两个节点之间的2D曲线箭头设置动画   JAVAsql。SQLException:第1行“IdentitCAT”列的整数值“Guitare”不正确   如何获取使用数组删除的元素详细信息。使用couchbase Java SDK的asList(remove())?   ssl得到了JAVA例外:JAVA。安全spec.InvalidKeySpecException:未知的KeySpec类型   多线程Java扫描器输入在单独的线程中