svm - LibSVM 是否接受带有科学格式 float 的训练文件?

标签 svm libsvm

是否 LibSVM 接受科学格式的浮点数?

一个功能…

index: 4
value: 1.04515435733819E-05

...看起来像这样:
4:1.04515435733819E-05

我有一个很大的训练文件,里面充满了浮点值,它们的指数范围从 -06 开始。至 +31 .

(注意:我担心特征值的格式。
我知道训练文件的格式,即:label index:value index:value ... )

我正在使用 Visual C++ 2010 我正在写 value使用 String 到文件和 StreamWriter类。

最佳答案

鉴于 LibSVM ( v3.16 ) 使用 stdlibdouble strtod(const char *, char **)函数读取它应该接受的特征值 strtod() 可以读取的每个符号 .

(顺便说一句,标签也是如此,从下面的片段中可以看出,标签也可以是浮点数。)

有问题的代码可以在 void read_problem(const char *filename) 中找到来自 svm-train.c文件来自 LibSVM 的源代码分发。

这是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;
}

关于svm - LibSVM 是否接受带有科学格式 float 的训练文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576674/

相关文章:

python - 使用 python 的 libsvm 支持具有高维输出的向量回归

c++ - Lib svm,如何将 MyModel.mat 转换为 MyModel.model

machine-learning - 我应该如何使用 julia 训练 SVM?

libsvm - LibSVM 特征向量中的特征顺序重要吗?

machine-learning - 支持向量机: Feature Transformation

matlab - Matlab中的两个同名函数

c++ - libsvm(C++)始终输出相同的预测

python - 如何在 mac 上为 python 安装 libsvm?

python - 支持向量回归多输出