如何将 libsvm 预测的类标签保存到 csv?

Posted

技术标签:

【中文标题】如何将 libsvm 预测的类标签保存到 csv?【英文标题】:How to save libsvm predicted class labels to csv? 【发布时间】:2018-04-04 17:47:32 【问题描述】:

我是 SVM 的新手,我正在使用 libsvm 3.21 来训练和测试我的数据。我的每个实例都有类标签 1,2,..,5(假设我有 10 个)。

有没有办法将预测的类标签(例如 3、5、1、2、3、4、2、1、1、4)打印到 csv 或 txt 文件?我一直在看这里http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html,但似乎 libsvm 只输出这个(连同 .model、.range 和 .scale 文件):

optimization finished, #iter = 219
nu = 0.431030
obj = -100.877286, rho = 0.424632
nSV = 132, nBSV = 107
Total nSV = 132

【问题讨论】:

【参考方案1】:

根据 libsvm 中的 README,假设你有 train.data、test.data,你需要做的是使用 svm-train 训练你的数据

user:~$ ./svm-train train.data svm.model
*
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132

然后使用您刚刚使用 svm-predict 训练的模型测试您的 test.data

user:~$ ./svm-predict test.data svm.model svm.output
Accuracy = 86.6667% (234/270) (classification)

您可以在 svm.output 中找到您预测的标签。

user:~$ head -5 svm.output 
1
-1
-1
1
-1

特别是如果你想把它改成.csv文件,你可以输入

user:~$ tr -s '\n' ',' < svm.output > svm.csv

【讨论】:

以上是关于如何将 libsvm 预测的类标签保存到 csv?的主要内容,如果未能解决你的问题,请参考以下文章

libsvm 可以将预测结果作为有符号距离返回吗?

如何使用 python 和 pandas 将 Csv 文件转换为 libsvm?

LIBSVM:未知的预测标签给出的准确度为 0%

LibSVM 预测不工作

LIBSVM 数据准备:将 Excel 数据转换为 LIBSVM 格式

将xgboost二进制预测保存到提交csv文件