阅读/写实验结果的最佳方法

时间:2013-09-16 10:30:03

标签: csv file-io io format tsv

我参与了一个项目,我需要使用不同的设置运行不同的实验。由于每个实验需要2天才能完成,我需要存储尽可能多的信息以供以后分析,即:

learner(string) / Kernel(string)/gamma (float)/features(string)/train_size(int)/test_size(int)/train_Index(vector<int>)/test_index(vector<int>)/ predictions (array of pointers(float))/ run_time (float)

我也应该能够附加文件。其中一种方法是将所有内容存储在具有特定格式的文本文件中并稍后阅读,但它很慢而且不便于内存(我需要运行大约500个-1000实验)。另一种方法是使用XML文件,这使得阅读文件更容易。但我仍然不确定最好的方法是什么。可以给我一些提示(甚至更好的一些例子)?

1 个答案:

答案 0 :(得分:0)

我建议以制表符分隔的方式写入文本文件。 对列表项使用不同的分隔符(例如','或';')

这个开销空间相对较小且复杂度相对较低(我个人喜欢将用c ++运行的实验结果打印到文件中并在python中进行分析,这些内容非常强大,支持读取行和将字符串拆分为列表等内容在给定的分隔符 - 但所有langauges提供或多或少的短语法,你甚至可以自己写几行。

它也应该很快,但是如果你正在训练和运行svm,那么无论如何,写入和读取输出都不是时间问题。

使用xml等获得的收益很少:这些格式的优势在于它们允许交换文件,通过架构强制执行规则等。您还可以为每个属性指定正确的名称。但如果只是你的实验,你真的不需要那些功能。您将知道哪个列对应于什么。

Tab separeted文件还有另一个好处。您可以使用GNU程序来访问数据并快速查找:cut / sed / grep / etc可以很好地工作,而且不能使用xml。