数据管理框架,用于数据科学和机器学习的流水线
DaMa-ML的Python项目详细描述
概述
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”查看更多选项。