问题标签 [reproducible-research]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何重现“改进的 GAN”代码?theano/cudnn/docker 的问题
关于 OpenAI 的“改进的 GANs”,我一直在尝试重现此处找到的代码,但我在设置环境(Docker 容器)时遇到了很多麻烦。
我只是无法使 Theano 与此代码一起正常工作。
我创建了一个 Docker 容器来测试它,但是当我使用使用 conda 安装的 Theano 的稳定版本时会引发分段错误...
有些帖子建议改用 Theano 的开发版本,但是当我更新它时,Theano 可以'再也找不到Cudnn了
如果有人对 Theano/lasagne/docker 有一些背景可以帮助我,我将不胜感激。如果需要,我可以粘贴我的Dockerfile
, 或任何可以帮助的东西。
python - RandomizedSearchCV 和 GridsearchCV 结果不可重现
我在 python 中执行 RandomForest 和 AdaBoost 回归
我的结果不可重现 [我的预测每次都使用相同的数据和代码运行]
这里 test_adr 和 test_rfr 值每次都会发生变化,我运行我的代码。
请使用任何样本数据进行回归。但请建议如何使我的结果可重现。
metrics - 是否有关于“SLOC 与处理的工作量”比率的可靠发现?
我开始思考诸如“80% 的工作由 20% 的代码完成”之类的句子,并想知道是否有任何基础研究、原则或研究可以支持这种说法。
遗憾的是,我的 Google-Fu 不足以给出令人满意的答案。弹出的只是帕累托原理,但我不确定它是否可以应用于这种情况。
关于处理的工作量与 SLOC 的比率是否存在普遍共识?
是否有人对此主题进行过研究,或者是否有统计数据可以支持任何主张?
是否有关于哪种代码属于哪种类别的一般性陈述?(我最初的猜测是80% 的代码 / 20% 的负载部分主要与错误处理有关。)
r - 解析 R 函数名称、参数和返回值
如何以编程方式解析函数、参数及其返回值的名称?
我有兴趣使用drake
包生成工作计划数据框以自动化 R 数据分析工作流。workplan
可以使用该功能生成此类工作计划数据框。
我有一个 R 脚本,其中包含我想使用的功能。例如:
我想以编程方式生成一个如下所示的数据框。如何解析函数名称、参数和返回值,并使用drake::workplan
或其他函数创建这样的 data.frame?
一个人会像这样手动做到这一点:
然后使用以下命令运行工作流:
谢谢你。
python - Python sklearn RandomForestClassifier 不可重现的结果
我一直在使用 sklearn 的随机森林,并尝试比较几个模型。然后我注意到即使使用相同的种子,随机森林也会给出不同的结果。我尝试了两种方式:random.seed(1234) 以及使用随机森林内置 random_state = 1234 在这两种情况下,我得到不可重复的结果。我错过了什么……?
有任何想法吗?谢谢!!
编辑:添加我的代码的更完整版本
编辑:已经有一段时间了,但我认为使用RandomState可能会解决问题。我自己还没有测试它,但如果你正在阅读它,它值得一试。此外,通常最好使用 RandomState 而不是 random.seed()。
python - 随机森林回归器 - Python 不可重现
我正在尝试检查受 n_estimators 影响的随机森林回归器性能。
这是不可重现的,我一开始也定义了 rng 。
注意:想象一个用于 1 的 For 循环:nrow(dataframe) 每个 1 它通过多个模型,并且我在 For 循环的开头定义了 rng 和 Seed 。
帮帮我!.
2 个样本输出,这应该是理想的。这里的键是指n_estimators
[在此处输入图像描述][模拟 1] [在此处输入图像描述][模拟 2]
python - 为 matplotlib 绘图后端设置随机种子
我正在使用生成和保存 SVG 图像,matplotlib
并希望使它们尽可能重现。但是,即使在设置np.random.seed
和之后, SVG 图像中random.seed
的各种id
和值仍然会在我的代码运行之间发生变化。xlink:href
我认为这些差异是由于用于matplotlib
渲染 SVG 图像的后端造成的。有没有办法为此后端设置种子,以便相同的图在两次不同的代码运行之间产生相同的输出?
示例代码(运行两次,plt.savefig
为第二次运行更改名称):
比较文件:
python - 应该如何安装和启用 Jupyter 扩展以实现可重复性?
我想使用RISE aka live_reveal 制作交互式幻灯片集(用于在 python 中进行一些实时编码的演示),这是 Jupyter 的笔记本扩展。
我希望幻灯片集可供其他人(以及我未来的自己)使用,而无需太多手动步骤(并且不依赖托管的 Jupyter 解决方案),因此我选择pipenv
管理依赖项。
我可以开始
但是,只会pipenv install RISE
在本地目录中留下痕迹(在Pipfile
和中Pipfile.lock
)。因此,在新机器上(或之后pipenv --rm
)使用我的文件时
是不够的。必须重复这两个nbextension
步骤以启用 RISE 扩展并在 Jupyter 笔记本中使用按钮切换到演示模式。
这可以自动化吗?(不使用额外的工具,如 conda、docker、vagrant、make 或其他构建系统,...)如果是这样,它应该如何自动化?
我可以告诉pipenv
(例如 in Pipfile
)在安装包后运行这两个命令吗?或者我应该让笔记本(*.ipynb
文件)以某种方式加载扩展名?
r - 在正在读取本地文件的 r 中使用 reprex 包创建可重现的示例
我经常使用reprex::reprex
创建可重现的R
代码示例来获得其他人的帮助以消除我的代码中的错误。通常,我使用iris
or之类的数据集创建最小的示例mtcars
,并且效果很好。但是我总是无法在reprex
需要使用自己的数据的任何时候使用,因为问题非常具体,我不能依赖datasets
库中的数据集。
在这种情况下,我收到以下错误:
由reprex 包(v0.2.0)于 2018 年 2 月 19 日创建。
在其他地方有一个很好的讨论reprex
(如何制作一个很棒的 R 可重现示例?)。作者建议使用类似dput
-
如果您有一些使用这些技巧难以构建的数据,那么您始终可以使用例如 或索引来制作原始数据的子
head()
集subset()
。然后使用例如。dput()
给我们一些可以R
立即放入的东西
但也提到——
如果您的数据框有一个具有多个级别的因子,则
dput
输出可能会很笨拙,因为它仍会列出所有可能的因子级别,即使它们不存在于您的数据子集中。
因此,如果我想使用我的完整数据集,这不是一个好的选择。
总之:
任何人都知道如何创建一个reprex
独立的,即使它依赖于使用包含所有数据的本地文件?
r - 用于可重复研究的 R 数据结构设置
背景
我会收到关于建筑物、大量建筑物和大量设备的设备的每小时间隔报告。设备上的每个参数都称为一个点,它们已经有一个名称,我无法选择点的名称。每个点名称都是唯一的。我正在尝试做的是对每座建筑物运行标准报告。最终,我想把它移到 Shiny 并查看我的图表,也许从那里打印一份报告,但是......小步骤。
问题
我在正确的轨道上吗?有没有更有效的方法来做到这一点?当我开始编写 Markdown 报告或将其转移到 Shiny 时,我会遇到问题吗?
示例代码
解释
所以在这个示例中,tbl.data
数据框将是我从每个建筑物接收到的数据。我必须手动创建tbl.equipment
和tbl.point
数据框,我只需将它们存放在我的机器或数据库上的 *.csv 文件中(并且能够在 Shiny 中添加/编辑)。点名称没有标准,也不能保证每件设备都有每个点。使用select()
诸如contains()
or之类的助手starts_with()
是不可能的。
所以我刚刚创建了一个设备表,其中包含有关设备的参数(在本例中为倍数)。此外,还有一个点表,它告诉您哪个设备以及每个点属于哪个类别。
对于这个简单的示例,我包含了两个示例函数。一个根据数据计算一个值,另一个测试故障。我过去最大的问题是当一个设备没有点时,它会停止执行,所以我必须手动将其取出或其他东西。我想解决方法是exists()
在运行那段代码之前使用或类似的东西并进行测试。
同样,对于这个简单的例子,我只是打印了一个图,但输出可能是 Markdown 文档(我想我以前做过,但不是这样)或 Shiny(我创建了一些更简单的应用程序)。
结论
最大的问题是“这是“正确”的做法吗?我确信这很常见,并且必须有一种我没有使用的非常有效的方法。当我开始编写代码以打印报告或将其放入 Shiny 应用程序时,什么会为我的成功做好准备?