为我们的数据科学家提供一些帮助
dvb.datascience的Python项目详细描述
数据科学
一个python数据科学管道包
在volksbank网站上,我们的数据科学家曾经为每个实验从头开始编写大量的开销代码。为了帮助他们专注于工作中更令人兴奋和增值的部分,我们创建了这个包。 使用此软件包,您可以在实验中轻松创建和重用管道代码(包括常用的数据转换和建模步骤)。
此软件包(除其他外)具有以下功能:
- 方便地跟踪配合和转换的模型管道(什么是管道?
- 绘制管线图
- 从管道步骤输出图形、数据、元数据等
- 数据预处理,如过滤特征和观测异常值
- 添加和合并中间数据帧
- 每个管道都存储所有中间输出,因此稍后可以检查输出
- 转换可以存储以前运行的输出,因此可以将来自不同转换的数据比较为一个图形
- 数据采用熊猫格式dataframe格式
- 使用pipeline fit_transform()和transform()方法可以给出每个管道的参数
范围
这个软件包是专门为在一台机器上使用相对较小的数据集进行快速原型设计而开发的。通过允许存储每个管道步骤的中间输出,对于更大的数据集(100000行或更多),此包可能性能不佳。
开始
这些说明将为您在本地计算机上启动和运行项目的副本,以便进行开发和测试。 有关所有功能的更广泛概述,请参阅docs目录。
先决条件
此软件包需要使用python3进行测试/开发。
安装
安装库(用于使用)的最简单方法是使用:
pip install dvb.datascience
开发
(在checkout目录中):用于安装用于开发dvb的checkout repo。datascience:
pipenv install --dev
用于在项目中使用dvb.datascience:
pipenv install dvb.datascience
开发-蟒蛇
(在签出目录中):创建并激活环境+安装软件包:
conda create --name dvb.datascience conda activate dvb.datascience pip install -e .
或通过以下途径使用:
pip install dvb.datascience
Jupyter目录
当使用较长的管道时,使用jupyter笔记本时的输出可能会变得相当长。建议安装 nbextensions对于toc2扩展:
pip install jupyter_contrib_nbextensions jupyter contrib nbextension install
接下来,启动jupyter笔记本并导航到编辑nbextensions c配置并启用TOC2扩展。并可选择设置其他属性。 之后,导航回您的笔记本(刷新),然后单击菜单中的图标以加载侧面板中的目录。
示例
此示例加载数据并绘制iris数据集的一些图
importdvb.datascienceasdsp=ds.Pipeline()p.addPipe('read',ds.data.SampleData('iris'))p.addPipe('split',ds.transform.TrainTestSplit(test_size=0.3),[("read","df","df")])p.addPipe('boxplot',ds.eda.BoxPlot(),[("split","df","df")])p.fit_transform(transform_params={'split':{'train':True}})
此示例显示包的许多功能及其用法:
- 使用
addpipe()
向管道添加3个步骤 - 使用
[("read","df","df")]
链接3个步骤:将"read"
方法(第一种方法)的"df"
输出(第二个参数)与拆分方法的"df"
输入(第三个参数)连接。 - 使用3个子包:
ds.data
,ds.transform
和ds.eda
。其他两个包是:ds.predictor
和ds.score
- 最后一个方法
p.fit_transform()
有一个额外的参数输入,用于运行定义的管道,对p.fit_transform()
或p.transform()
方法的每次调用都可能不同。
此示例将KneighborsClassifier从sklearn应用到IRIS数据集
importdvb.datascienceasdsfromsklearn.neighborsimportKNeighborsClassifierp=ds.Pipeline()p.addPipe('read',ds.data.SampleData('iris'))p.addPipe('clf',ds.predictor.SklearnClassifier(KNeighborsClassifier,n_neighbors=3),[("read","df","df"),("read","df_metadata","df_metadata")])p.addPipe('score',ds.score.ClassificationScore(),[("clf","predict","predict"),("clf","predict_metadata","predict_metadata")])p.fit_transform()
此示例显示:
- 使用
KneighborsClassifier
fromsklearn
- 多参数耦合作为输入的用法:
[("read","df","df"),("read","df_metadata","df_metadata")]
有关所有功能的更广泛概述,请参阅docs目录。
单元测试
可以使用pytest运行项目的unittests
pytest
代码覆盖率
pytest还将输出控制台的覆盖范围。
要生成HTML报告,可以使用:
pip install dvb.datascience0
代码样式
代码样式是使用黑色来完成的
使用
构建有关详细列表,请参见setup.py
贡献
有关我们的行为准则以及向我们提交请求的过程的详细信息,请阅读contribution.md。
版本控制
我们使用semver进行版本控制。有关可用的版本,请参见此存储库上的标记
作者
- marc rijken-初始工作-mrijken
- wouter poncin-维护-wpbs
- daan knoope-贡献者-daanknoope
另请参见参与此项目的贡献者列表。
许可证
此项目是在麻省理工学院许可证下授权的-有关详细信息,请参见许可证文件
联系人
如有任何问题,请随时与我们联系olksbank.nl
进行中的工作
- 添加对多类分类问题的支持
- 添加对回归问题的支持
- 添加对apache spark ml的支持