1

私は、さまざまな設定でさまざまな実験を実行する必要があるプロジェクトに関与しています。各実験は完了するまでに 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)

ファイルも追加できるはずです.1つの方法は、すべてを特定の形式のテキストファイルに保存し、後で読み取ることですが、遅くてメモリに優しくありません(約500〜1000回の実験を実行する必要があります) )。もう 1 つの方法は、ファイルの読み取りを容易にする XML ファイルを使用することです。しかし、どうするのが最善の方法なのかはまだわかりません。いくつかのヒント(またはさらに良い例)を教えてもらえますか?

4

1 に答える 1

0

タブ区切りでテキストファイルに書き込むことをお勧めします。リスト項目には別のセパレータを使用してください (例: ',' または ';')

これには、オーバーヘッドスペースと複雑さの点で比較的小さなオーバーヘッドがあります(個人的には、c ++で実行された実験の結果をファイルに出力し、それらをPythonで分析するのが好きです.Pythonには、行ごとの読み取りや、指定された区切り記号で文字列をリストに分割するなどのサポートが組み込まれています-しかし、すべての言語は多かれ少なかれ短い構文でそれを提供しており、数行で自分で書くことさえできます)。

また、高速である必要がありますが、svm をトレーニングして実行している場合、出力の書き込みと読み取りは時間的に問題ありません。

xml などを使用して得られるものはほとんどありません。このような形式の長所は、ファイルを交換したり、スキーマを介してルールを適用したりできることです。各属性に適切な名前を付けることもできます。しかし、それがあなたの実験だけであれば、それらの機能は本当に必要ありません。どの列が何に対応しているかがわかります。

タブ区切りファイルには、もう 1 つの大きな利点があります。GNU プログラムを使用してデータにアクセスし、何かをすばやく調べることができます。cut/sed/grep/etc はうまく機能しますが、xml では機能しません。

于 2013-09-16T10:45:59.733 に答える