记录实验运行和结果

数据挖掘 工具 实验
2021-09-22 05:36:47

我是一名动手研究人员,我喜欢测试可行的解决方案,所以我倾向于进行大量实验。例如,如果我正在计算文档之间的相似度分数,我可能想尝试许多度量。事实上,对于每个测量,我可能需要进行多次运行来测试某些参数的效果。

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

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

2个回答

你可能想看看http://deeplearning.net/software/jobman/intro.html

它是为深度学习而设计的(我猜),但它与应用程序无关。它实际上是 SeanEasters 方法的 API 版本

我最近遇到了一个类似的问题:如何管理从大型数据集中提取各种特征,而无需预先知道它们都是什么。(即使重复计算平均值也会在计算上很昂贵。)此外,我将如何管理基于不同特征集的预测?意思是,如果我添加了一个新功能,我怎么知道要训练哪些模型来使用新功能?它可能会迅速滚雪球,变成一个巨大的烂摊子。

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

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

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

  • 通过保存预测,我可以稍后在整体预测中使用它们。
  • 因为我会跟踪使用了哪些特征,所以当我提取更多特征时,我知道哪些需要重新训练。
  • 通过保存模型描述,我确保我始终知道我尝试过什么。我永远不必怀疑,“我是否尝试过使用网格搜索 CV 设置的正则化参数的 LASSO?” 我总能查到它,看看它有多成功。

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