Libsvm以二进制格式保存模型文件

时间:2013-12-17 01:31:24

标签: machine-learning svm libsvm

我正在为libsvm训练一个巨大的数据文件,结果训练文件太大了。有没有办法以二进制格式保存libsvm库模型文件?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Matlab: 下载svm_savemodel.csvm_model_matlab.c(这已经包含在libsvm中,您可以尝试使用原始的,但如果它不起作用,请尝试此链接)到您的libsvm目录。编译Mex文件(mex svm_savemodel.c),它应该可以工作:

%save model model

fid = fopen('model.bin','w');
model = fwrite(fid, model, 'int16');

%load('model.mat');

fid = fopen('model.bin','rb');
model = fread(fid, model, 'int16');

svm_savemodel(model,'model.model');

如果您使用的是C ++: 有一个函数可以将模型保存到文件中:

int svm_save_model(const char *model_file_name, const struct svm_model *model);

更多详细信息包含在github