2014-04-13 34 views
0

我希望有人能夠澄清這個關於使用我擁有的gem工具的真正簡單的問題。用於運行rb-libsvm的Gem環境

我想運行一些代碼,使用rb-libsvm,我成功安裝了這個使用gem install;當我使用gem list時,列出了rb-libsvm。然而,在代碼中,命令./svm-predict引發以下錯誤:

sh: ./svm-train: No such file or directory 
sh: ./svm-predict: No such file or directory 

有沒有別的東西我需要讓我的寶石電腦上工作?

回答

0

我不知道你是如何在shell中運行它,您可以通過下面的示例代碼測試它在irb從文檔中從https://github.com/febeling/rb-libsvm

require 'libsvm' 

# This library is namespaced. 
problem = Libsvm::Problem.new 
parameter = Libsvm::SvmParameter.new 

parameter.cache_size = 1 # in megabytes 

parameter.eps = 0.001 
parameter.c = 10 

examples = [ [1,0,1], [-1,0,-1] ].map {|ary| Libsvm::Node.features(ary) } 
labels = [1, -1] 

problem.set_examples(labels, examples) 

model = Libsvm::Model.train(problem, parameter) 

pred = model.predict(Libsvm::Node.features(1, 1, 1)) 
puts "Example [1, 1, 1] - Predicted #{pred}" 
+0

在IRB,這裏存在以下問題: IRB(主):010:0> problem.set_examples(標籤,實施例) => 2 IRB(主):011:0>模型= LIBSVM: :Model.train(問題,參數) NameError:從(IRB)未初始化的常數模型 \t:11 \t從/ usr /斌/ IRB:12:在'

' 所有前述代碼工作。另外,上面提到的代碼我在shell上使用ruby filename.rb運行代碼 – user3249763

+0

上面註釋中的「Libsvm :: Model.train(problem,parameter)」行在雙冒號周圍包含空格,這可能不是您打算的目標即訪問Libsvm模塊內的Model類。 – febeling

0

寶石提供不包括命令行工具。請參閱README

爲此,請考慮安裝整個軟件包。儘管名稱爲libsvm,但它實際上是一個包含命令行工具和Python綁定的包,與庫本身一起。