记下实验运行和结果


11

我是一名研究人员,我喜欢测试可行的解决方案,因此我倾向于进行大量实验。例如,如果我要计算文档之间的相似度得分,则可能要尝试许多措施。实际上,对于每种度量,我可能需要运行几次以测试某些参数的效果。

到目前为止,我一直在跟踪运行输入及其结果,方法是将结果写到文件中,其中包含有关输入的尽可能多的信息。问题是,即使我尝试将输入信息添加到文件名中,检索特定结果有时也成为挑战。我尝试使用包含结果链接的电子表格,但这并没有太大的不同。

您使用什么工具/过程来记录实验?


1
我想添加标记最佳做法,但我没有,因为我没有150的声望点。老实说,我不了解新来者如何通过所有这些规则有效地为网站做出贡献。我看到了很多我都知道答案的问题,但是如果答案已经存在,我将无法回答,甚至无法投票。
机器智慧

我认为这更多是一个通用的编程问题,因此StackOverflow可能更好。您可以包含您要执行的操作的摘要,以及执行缓慢的原因,然后提出建议的优化方案。
肖恩·欧文

实际上,我认为opendata.stackexchange.com更合适。
Emre 2014年

1
最近,我快速浏览了有助于此目的的产品市场,并希望分享自己的发现。有两种SAAS产品可以帮助数据科学团队共享在Python和R中完成的分析。它们都有像IDE这样的IPython笔记本,并且都围绕它构建了许多用于运行和共享作业的功能。我发现它们几乎完全相同:[Domino Data Lab] [1]和[Sense.io] [2] [1]:dominodatalab.com [2]:Sense.io
机器智慧

还有一个用于Hadoop的机器学习环境,可跟踪作业的运行;[h2o.ai] [3]。它并不是要成为简化数据团队工作的工具,但是通过一些谨慎的命名约定,它可以带来很大帮助。这最适合[3]:h2o.ai
机器智慧

Answers:



5

最近,我遇到了一个类似的问题:如何在不事先知道所有特征的情况下,如何从大型数据集中提取各种特征。(即使重复计算平均值也会在计算上花费很大。)此外,我将如何基于不同的特征集管理预测?意思是,如果添加了新功能,我如何知道要针对新功能训练哪些模型?它可能迅速滚雪球,变成一团糟。

我当前的解决方案是在本地NoSQL数据库(MongoDB)中对其进行跟踪。例如,我可能有一个collection features,其中的每个条目都有一个名称,对该功能的计算方式的描述,运行提取的python文件等。

同样,集合models包括在数据上运行的模型。每个条目可能都有一个名称,用于训练模型的功能列表,其最终参数,保持测试集上的预测值,模型执行方式的度量等。

从我的角度来看,这有很多好处:

  • 通过保存预测,以后可以在整体预测中使用它们。
  • 因为我跟踪使用了哪些功能,所以当我提取更多功能时,我知道哪些功能需要重新培训。
  • 通过保存模型描述,我确保我始终知道自己尝试过的内容。我从来没有想过,“我是否尝试过使用网格搜索CV设置的正则化参数进行LASSO?” 我总是可以查一下,看看它有多成功。

从您的问题看来,您可以将这种方法适应问题的工作流程。安装Mongo或其他选择的数据库,然后保存每个实验运行,其输入,结果以及您在项目过程中可能希望跟踪的所有其他信息。至少应该比电子表格更容易查询。


我想投票,但我不被允许。
机器智慧
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.