为我们的数据科学家提供一些帮助

dvb.datascience的Python项目详细描述


数据科学

一个python数据科学管道包

travis(.org)

在volksbank网站上,我们的数据科学家曾经为每个实验从头开始编写大量的开销代码。为了帮助他们专注于工作中更令人兴奋和增值的部分,我们创建了这个包。 使用此软件包,您可以在实验中轻松创建和重用管道代码(包括常用的数据转换和建模步骤)。

示例项目gif

此软件包(除其他外)具有以下功能:

logo

范围

这个软件包是专门为在一台机器上使用相对较小的数据集进行快速原型设计而开发的。通过允许存储每个管道步骤的中间输出,对于更大的数据集(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.datads.transformds.eda。其他两个包是:ds.predictords.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()

此示例显示:

  • 使用KneighborsClassifierfromsklearn
  • 多参数耦合作为输入的用法:[("read","df","df"),("read","df_metadata","df_metadata")]

有关所有功能的更广泛概述,请参阅docs目录。

单元测试

可以使用pytest运行项目的unittests

pytest

代码覆盖率

pytest还将输出控制台的覆盖范围。

要生成HTML报告,可以使用:

pip install dvb.datascience
0

代码样式

代码样式是使用黑色来完成的

使用

构建

有关详细列表,请参见setup.py

贡献

有关我们的行为准则以及向我们提交请求的过程的详细信息,请阅读contribution.md

版本控制

我们使用semver进行版本控制。有关可用的版本,请参见此存储库上的标记

作者

另请参见参与此项目的贡献者列表。

许可证

此项目是在麻省理工学院许可证下授权的-有关详细信息,请参见许可证文件

联系人

如有任何问题,请随时与我们联系olksbank.nl

进行中的工作

  • 添加对多类分类问题的支持
  • 添加对回归问题的支持
  • 添加对apache spark ml的支持

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

推荐PyPI第三方库


热门话题
java为什么单元测试中的“验证”在不同实例的情况下不返回“不同参数”错误?   java如何从具有相同类名的div中选择元素(Selenium)   Java制作纸牌游戏,有关于类的问题吗   bluej在Java中使用变异器和访问器设置颜色和圆半径   java准确定位异常错误的最佳方法是什么?   使用多个监视器时的java设置对话框位置   java如何在不使用JavascriptExecutor的情况下在网页中向下/向上滚动   java在for循环中将大小设置为n   java为什么akka需要不可变的消息   java LdapInvalidDnException:意外标记:   java如果字符串的第一个字母不是一个,如何大写?   使用htmlunit的java html内容提取   java从CDI托管bean获取方法的注释   java有办法在运行时检查post请求参数的大小吗   java我可以将实体注入托管Bean并直接持久化吗?