4

LibSVMは科学形式の浮動小数点数を受け入れますか?

機能…</p>

index: 4
value: 1.04515435733819E-05

…次のようになります。

4:1.04515435733819E-05

-06からまでの範囲の指数を持つ浮動小数点値でいっぱいの大きなトレーニング ファイルがあります+31

(注: 特徴値の形式が気になります。
トレーニング ファイルの形式はわかっています。つまり: label index:value index:value ...)

私はVisual C++ 2010を使用しており、およびクラスvalueを使用して をファイルに書き込んでいます。StringStreamWriter

4

1 に答える 1

3

LibSVM ( v3.16 ) がの関数を使用して特徴値を読み取る場合、読み取り可能なすべての表記法を受け入れる必要があります。stdlibdouble strtod(const char *, char **)strtod()

(ちなみに、以下のスニペットに見られるように、ラベルにも同じことが言えますが、浮動小数点数にすることもできます。)

問題のコードは、 LibSVMのソース コード配布のvoid read_problem(const char *filename)ファイルsvm-train.cから見つけることができます。

これは、 の関連部分を簡略化したものですread_problem(...)

label = strtok(*line," \t\n");
problem->y[i] = strtod(label,&endptr);                 // document label
while (1) {
    idx = strtok(NULL,":");
    val = strtok(NULL," \t");
    (*x_space)[j].index = (int)strtol(idx,&endptr,10); // feature index
    (*x_space)[j].value = strtod(val,&endptr);         // feature value
    ++j;
}
于 2013-02-21T04:02:12.997 に答える