轻松管理数据科学项目的源数据、中间数据和结果
dataworkspaces的Python项目详细描述
数据工作区是用于维护 数据科学项目的状态,包括数据集,中间 数据、结果和代码。它通过快照支持可复制性 以及沿袭模型和通过推/拉模型进行的协作 灵感来自于像git这样的源代码控制系统。
数据工作区作为Python3包安装,并提供 类似于git的命令行接口和编程api。具体数据 通过扩展支持科学工具和工作流 称为kits。目标是提供可复制性和协作性 对您当前的项目和流程进行最少的更改会带来好处。
数据工作区运行于 类Unix系统,包括Linux、MacOS和通过 Linux的Windows子系统。
快速启动
下面是一个简单的示例,使用 scikit-learn 以及运行在Jupyter笔记本上的著名数字数据集。
首先,安装库:
pip install dataworkspaces
现在,我们将创建一个工作区:
mkdir quickstart cd ./quickstart dws init --create-resources code,results
这就创建了我们的workspace(这是一个隐藏的git存储库) 用两个子目录初始化它, 一个用于源代码,一个用于结果。这些是特别的 子目录,因为它们是resources可以跟踪和版本化 独立地。
现在,我们要将源数据添加到工作区中。它位于 外部第三方Git存储库。很容易添加:
git clone https://github.com/jfischer/sklearn-digits-dataset.git dws add git --role=source-data --read-only ./sklearn-digits-dataset
第一行(git clone ...)为 数字数据集。第二行(dws add git ...)将存储库添加到工作区 作为我们项目的一部分。--role选项告诉数据 工作区如何使用资源(作为源数据)和--read-only 选项指示我们应将存储库视为只读,而不要尝试 将其推送到origin(因为您没有^{tt5}的写入权限$ 此存储库的副本)。
现在,我们可以创建一个jupyter笔记本来运行我们的实验:
cd ./code jupyter notebook
这将在您的浏览器中显示Jupyter应用程序。单击new 下拉列表(在右侧)并选择“Python3”。一旦进入笔记本, 单击当前标题(“无标题”,在顶部,在“jupyter”旁边) 并将标题更改为digits-svc。
现在,在第一个单元格中键入以下python代码:
import numpy as np from os.path import join from sklearn.svm import SVC from dataworkspaces.kits.scikit_learn import load_dataset_from_resource,\ train_and_predict_with_cv RESULTS_DIR='../results' dataset = load_dataset_from_resource('sklearn-digits-dataset') train_and_predict_with_cv(SVC, {'gamma':[0.01, 0.001, 0.0001]}, dataset, RESULTS_DIR, random_state=42)
现在,打开牢房。训练和测试 模型。然后您应该看到:
Best params were: {'gamma': 0.001} accuracy: 0.99 classification report: precision recall f1-score support 0.0 1.00 1.00 1.00 33 1.0 1.00 1.00 1.00 28 2.0 1.00 1.00 1.00 33 3.0 1.00 0.97 0.99 34 4.0 1.00 1.00 1.00 46 5.0 0.98 0.98 0.98 47 6.0 0.97 1.00 0.99 35 7.0 0.97 0.97 0.97 34 8.0 1.00 1.00 1.00 30 9.0 0.97 0.97 0.97 40 micro avg 0.99 0.99 0.99 360 macro avg 0.99 0.99 0.99 360 weighted avg 0.99 0.99 0.99 360 Wrote results to results:results.json
现在,您可以保存并关闭笔记本。如果你看看 目录quickstart/results,您应该看到一个results.json 文件中包含有关您跑步的信息。
接下来,让我们创建一个snapshot,它将记录 工作区和保存数据沿袭以及我们的结果:
dws snapshot -m "first run with SVC" SVC-1
SVC-1是快照的标记。 如果您查看quickstart/results,您将看到结果 (当前仅results.json)已移动到子目录 snapshots/HOSTNAME-SVC-1,其中HOSTNAME是 本地机器)。一个文件lineage.json,包含完整的 我们实验的数据沿袭图 在那个目录中创建的。
从这里您可以做一些事情:
- 运行更多的实验并通过捕捉工作区来保存结果。 如果在某个时候,我们想回到我们的第一个实验,我们可以运行: dws restore SVC-1。这将还原源数据的状态,并 代码子目录,但保留结果的完整历史记录。
- 在github或任何其他git托管应用程序上上载您的工作区。 这可以是备份副本或与其他人共享。 其他人可以通过dws clone下载。
- 涉及多步骤数据管道的更复杂的场景可以很容易地 自动化。有关详细信息,请参阅文档。
文档
文件是AV在这里可用:https://data-workspaces-core.readthedocs.io/en/latest/。文档的源位于docs下。要在本地构建它,请安装 Sphinx并运行以下命令:
cd docs pip install -r requirements.txt # extras needed to build the docs make html
要查看本地文档,请在 浏览器。
许可证
本代码由马克斯普朗克软件系统和数据研究所(Max Planck Institute for Software Systems and Data Ken)于2018年、2019年版权所有。 研究。它是根据Apache2.0许可证授权的。有关详细信息,请参见文件license.txt。