具有简单csv输入输出选项的实验发生器设计

doep的Python项目详细描述


简介

对于计划进行实验分析的科学家、工程师或统计学家来说,实验设计是一项重要的活动。在这个数据科学和相关的统计建模和机器学习领域迅速扩展的时代,这项工作变得至关重要。一个计划周密的能源部可以给研究人员一个有意义的数据集,使其在保留关键资源的最佳实验数量下发挥作用。

< Buff行情>

毕竟,数据科学的目标本质上是用真实世界的数据进行最高质量的科学调查和建模。为了用数据做一个好的科学研究,我们需要通过仔细考虑的实验来收集数据,以涵盖所有的角落情况,并减少任何可能的偏差。

什么是科学实验?

科学实验的最简单形式是通过改变先决条件来预测结果,先决条件由一个或多个独立变量来表示"输入变量"或"预测变量"。通常假设一个或多个自变量的变化会导致一个或多个自变量的变化"输出变量"或"响应变量"。实验设计还可以确定必须保持恒定的控制变量,以防止外部因素影响结果。

什么是实验设计?

实验设计不仅包括选择合适的独立、相关和控制变量,而且在给定可用资源约束的统计最优条件下规划实验的交付。有多种方法可以确定实验中使用的设计点集(自变量设置的唯一组合)。

实验设计的主要关注点包括建立有效性、可靠性、可靠性。org/wiki/reprodubility" rel="nofollow">可复制性。例如,通过仔细选择自变量,降低测量误差的风险,并确保方法的文档足够详细,可以部分解决这些问题。相关问题包括达到适当的统计能力水平和敏感度。

在计算机科学、物理学、地质学、政治学、电气工程、心理学、商业营销分析、金融分析等所有严肃的科学、技术甚至社会科学研究领域,都需要精心设计实验。…

python中开源doe builder包的选项?

不幸的是,大多数最先进的DOE生成器都是商业统计软件包的一部分,如JMP(SAS)minitab。然而,如果存在一个开源代码,它提供了一个直观的用户界面,可以从一个简单的输入变量列表中生成一个实验性的设计计划,那么研究人员肯定会受益匪浅。有两个doe builder python包,但它们各自不支持所有必需的doe方法都缺乏一个简化的用户api,用户只需输入输入变量范围的csv文件,然后在另一个csv文件中返回doe矩阵即可。

功能

这组代码是一组函数的集合,这些函数围绕核心包(如下所述)并从任意范围的输入变量中为统计学家或工程师生成实验设计(DOE)矩阵。

< H3>使用的基础包的限制

作为本回购协议基础的两个核心包并不完整,因为它们没有涵盖设计工程师在计划试验时可能需要的生成DOE表的所有必要功能。此外,它们只提供低级api,因为它们的标准输出是标准化的numpy数组。有人认为,如果用户不愿意直接处理python对象,他们应该能够通过简化的用户界面利用自己的功能。

简化的用户界面

用户只需提供一个简单的csv文件,其中包含一个变量表及其范围(2级,即最小/最大或3级)。有些函数使用2级最小/最大范围,而有些函数则需要用户提供3级范围(低-中-高)。在代码中嵌入智能,以处理范围输入不合适的情况,并从给定输入通过简单的线性插值生成级别。代码将根据用户的选择生成DOE,并将矩阵写入磁盘上的CSV文件。

通过这种方式,唯一需要公开的api用户是输入和输出csv文件。然后,这些文件可用于任何工程模拟器、软件、过程控制模块或输入过程设备。

提供设计

  • 全阶乘,
  • 两级分数阶乘,
  • 普莱克特·伯曼,
  • 苏哈列夫电网,
  • Box Behnken,
  • 带中心面选项的Box Wilson(中央复合材料)
  • 带中心内接选项的Box Wilson(中央复合材料)
  • 带中心外接选项的Box Wilson(中央复合材料),
  • 拉丁超立方体(简单),
  • 拉丁超立方体(空间填充),
  • 随机k-均值聚类,
  • 最大值重建,
  • 基于哈尔顿序列,
  • 均匀随机矩阵

如何使用?

需要哪些辅助包?

首先确保安装了所有必需的软件包。您只需运行repo中提供的.bash(unix/linux)和.bat(windows)文件,即可从命令行界面安装这些软件包。它们包含以下命令,

pip install numpy
pip install pandas
pip install pydoe
pip install diversipy

如何安装软件包?

你可以安装软件包!

pip安装doepy

快速启动

假设下表的参数范围存在设计问题。想象一下,这是一个制造工厂的一个通用的检验过程的例子。你有3个压力等级,3个温度等级,2个流量等级和2个时间等级。

压力:40/55/70 温度:290/320/350 流量:0.2/0.4 时间:5/8

首先,从包中导入build模块,

来自Doepy导入生成

然后,通过构建一个全因子设计来尝试一个简单的例子。
我们将为此使用build.full_fact()函数。
必须将dictionary对象传递给对实验数据进行编码的函数。

build.full事实({'pressure':[40,55,70],'temperature':[290320,350],'flow rate':[0.2,0.4],'time':[5,8]})

如果您在此基础上构建一个完整的阶乘doe,那么您应该得到一个包含3x3x2x2=36个条目的表。

其他要尝试的功能

尝试其他功能likebuild.space_filling_lhs()构造a空间填充拉丁超立方体设计

或者试试中间的组合设计。

还有很多要补充的!

读取和写入CSV文件

在内部,传递dictionary对象并获取pandas数据帧。但是,要读取和写入csv文件,必须使用包的读写模块。

from doepy import read_write
data_in=read_write.read_variables_csv('../Data/params.csv')

然后,您可以在DOE生成函数中的对象中使用此数据。

对于回写csv,

df_lhs=build.space_filling_lhs(data_in,num_samples=100)
filename = 'lhs'
read_write.write_csv(df_lhs,filename=filename)

您应该在目录中看到一个lhs.csv文件。

确认和要求

代码是用Python3.7编写的。它使用以下需要安装在系统上才能使用的外部软件包,

  • pydoe:帮助科学家、工程师、统计学家等进行适当实验设计的软件包。检查此处的文档
  • 多样性:在超立方体中采样、选择不同子集和测量多样性的算法集合。检查此处的文档
  • 努比
  • 熊猫

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

推荐PyPI第三方库


热门话题
java在Android中维护应用程序状态   javajavacc:如何指定在特定上下文中需要哪些令牌?   java为什么改型会在重新加载数据时设置以前的响应?   java如何将键转换为字符串,反之亦然   java JDOM解析器插入#固定手动属性   java按元素对XML数据排序?   java Android中有哪些哈希算法?   java为什么使用可选返回类型进行单元测试失败?   Gson和argonauts使用Gson将javascript数组转换为json字符串并转换为javapojo时遇到的问题。试图让我的结构正确   java中的空格   java SQLite高分,草率IndexOutofBounds Android   使用Spring OAUTH2的java Make客户端   netbeans如何在java中创建一个JPopupMenu,其中包含一个要复制文本的项