rb-libsvm 中的零概率



我正在使用 rb-libsvm 进行预测

x.each_with_index do |e, i|
    predictions << model_w2v.predict_probability(e).to_i
end

它返回一个数组,其中第一个元素是标签,第二个元素是所有标签的概率。 例如 [2.0, [0.0, 0.0, 0.0, 0.0, 0.0]] .标签每次都不同,但概率始终为零。我想知道是否是因为从 c 转换为红宝石时数字太小并且四舍五入为 0.0。以下是相关的 c 代码:

estimates = rb_ary_new();
for (i = 0; i < model->nr_class; i++)
  rb_ary_push(estimates, rx_from_double(c_estimates[i]));

我怎样才能缓解这种情况?

rb-libsvm gem 和底层libsvm需要将概率参数设置为 true。因此,我只需要添加这一行并重新训练模型:

parameter.probability = 1

parameter之前定义为

parameter = Libsvm::SvmParameter.new

最新更新