Csv 读/写实验的最佳方式&x27;结果

Csv 读/写实验的最佳方式&x27;结果,csv,file-io,io,format,tsv,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 point

我参与了一个项目,我需要在不同的设置下运行不同的实验。由于每个实验需要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)
学习者(字符串)/内核(字符串)/伽马(浮点)/特征(字符串)/训练大小(int)/测试大小(int)/训练索引(向量)/测试索引(向量)/预测(指针数组(浮点))/运行时间(浮点)

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

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

这是一个相对较少的开销空间和复杂性(我个人喜欢把C++中的实验结果打印到文件中,并用Python分析它们,它有强大的支持,比如在给定的分隔符上读取线段和分割字符串到列表中,但是所有的Langues都提供了或多或少的简短语法,甚至可以在几行中自己编写。) 它也应该很快,但如果您正在训练和运行svm,无论如何,从时间上来说,编写和读取输出将是一个没有问题的问题

通过使用xml或类似的东西,您几乎没有什么收获:这种格式的优点是它们允许交换文件,通过模式强制执行规则,等等。您还可以为每个属性指定适当的名称。但如果只是您的实验,您并不真的需要这些功能。您将知道哪个列对应什么


Tab分离的文件还有另一个很大的好处。你可以使用GNU程序访问数据并快速查找:cut/sed/grep/etc工作得很好,它们不使用xml。

将其存储在文本文件中,如果实验需要2天,文件保存就不会有问题。另一个建议是DBwhat does
learner(string)/Kernel(字符串)/伽马(浮点)/特征(字符串)/序列大小(int)/测试大小(int)/序列索引(向量)/测试索引(向量)/预测(指针数组(浮点))/运行时间(浮点)
mean?@Olumide它只是显示了我需要存储的内容以及它们的格式。它读起来像代码,我也是这样读的。你为什么要在一个文件中存储一个指针数组?不管怎样,你的答案已经写入了一个文件或数据库。这正是我需要做的。用python存储结果并进行分析。我只是想确定一下这是正确的方法。感谢您注意到这些文件通常被称为CSV文件。您甚至可以将它们导入Excel或类似的office程序。我尽量避免调用以制表符分隔的文件CSV-它们不是以逗号分隔的。实际上,我更喜欢“tsv”而不是“CSV”(制表符sep而不是逗号)。尽管Excel似乎同时调用这两种文件“csv”。这就是我避免使用这些首字母缩略词的原因