我是一名动手研究人员,我喜欢测试可行的解决方案,所以我倾向于进行大量实验。例如,如果我正在计算文档之间的相似度分数,我可能想尝试许多度量。事实上,对于每个测量,我可能需要进行多次运行来测试某些参数的效果。
到目前为止,我一直在跟踪运行输入及其结果,方法是将结果写入包含有关输入的尽可能多信息的文件中。问题是检索特定结果有时会成为挑战,即使我尝试将输入信息添加到文件名。我尝试使用带有结果链接的电子表格,但这并没有太大的不同。
你使用什么工具/过程来记录你的实验?
我是一名动手研究人员,我喜欢测试可行的解决方案,所以我倾向于进行大量实验。例如,如果我正在计算文档之间的相似度分数,我可能想尝试许多度量。事实上,对于每个测量,我可能需要进行多次运行来测试某些参数的效果。
到目前为止,我一直在跟踪运行输入及其结果,方法是将结果写入包含有关输入的尽可能多信息的文件中。问题是检索特定结果有时会成为挑战,即使我尝试将输入信息添加到文件名。我尝试使用带有结果链接的电子表格,但这并没有太大的不同。
你使用什么工具/过程来记录你的实验?
你可能想看看http://deeplearning.net/software/jobman/intro.html
它是为深度学习而设计的(我猜),但它与应用程序无关。它实际上是 SeanEasters 方法的 API 版本
我最近遇到了一个类似的问题:如何管理从大型数据集中提取各种特征,而无需预先知道它们都是什么。(即使重复计算平均值也会在计算上很昂贵。)此外,我将如何管理基于不同特征集的预测?意思是,如果我添加了一个新功能,我怎么知道要训练哪些模型来使用新功能?它可能会迅速滚雪球,变成一个巨大的烂摊子。
我当前的解决方案是在本地 NoSQL 数据库 (MongoDB) 中跟踪所有内容。例如,我可能有一个 collection features
,其中的每个条目都有一个名称、如何计算特征的描述、运行提取的 python 文件等。
同样,集合models
包括在数据上运行的模型。每个条目可能有一个名称、用于训练模型的特征列表、其最终参数、保留测试集上的预测值、模型执行方式的指标等。
从我的角度来看,这有很多好处:
从您的问题来看,听起来您可以将此方法应用于您的问题的工作流程。安装 Mongo 或其他选择的数据库,然后保存每个实验运行、其输入、结果以及您可能希望在项目过程中跟踪的任何其他内容。至少,这应该比电子表格更容易查询。