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