Skip to content

Commit

Permalink
added a 'modshogun.rb' file to do some (ok, eventually a lot) of the …
Browse files Browse the repository at this point in the history
…ruby start-up stuff, like requiring 'narray' and such. also completed more examples. more examples to come!!
  • Loading branch information
serialhex committed Aug 21, 2011
1 parent bbde5a9 commit 0f8b2ff
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 38 deletions.
@@ -1,20 +1,21 @@
require 'narray'
require 'modshogun'
require 'load'
require 'pp'

traindat = LoadMatrix.load_numbers('../data/fm_train_real.dat')
testdat = LoadMatrix.load_numbers('../data/fm_test_real.dat')
label_traindat = LoadMatrix.load_labels('../data/label_train_twoclass.dat')

parameter_list = [[traindat,testdat,label_traindat,1,1000,1],[traindat,testdat,label_traindat,1,1000,1]]
parameter_list = [traindat,testdat,label_traindat,2,1000,1]

def classifier_averaged_perceptron_modular(fm_train_real=traindat,fm_test_real=testdat,label_train_twoclass=label_traindat,learn_rate=1,max_iter=1000,num_threads=1)
def classifier_averaged_perceptron_modular(fm_train_real, fm_test_real, label_train_twoclass, learn_rate, max_iter, num_threads)

feats_train=Modshogun::RealFeatures.new(fm_train_real)
feats_test=Modshogun::RealFeatures.new(fm_test_real)
feats_train=Modshogun::RealFeatures.new
feats_train.set_feature_matrix(fm_train_real)
feats_test=Modshogun::RealFeatures.new
feats_test.set_feature_matrix(fm_test_real)

labels=Modshogun::Labels.new(label_train_twoclass)
labels=Modshogun::Labels.new
labels.set_labels(label_train_twoclass)

perceptron=Modshogun::AveragedPerceptron.new(feats_train, labels)
perceptron.set_learn_rate(learn_rate)
Expand All @@ -23,12 +24,12 @@ def classifier_averaged_perceptron_modular(fm_train_real=traindat,fm_test_real=t
perceptron.train()

perceptron.set_features(feats_test)
out_labels = perceptron.apply().get_labels()
print out_labels
out_labels = perceptron.apply.get_labels
#puts out_labels
return perceptron, out_labels
end

if __FILE__ == $0
puts 'AveragedPerceptron'
classifier_averaged_perceptron_modular(*parameter_list[0])
pp classifier_averaged_perceptron_modular(*parameter_list)
end
@@ -1,12 +1,6 @@
# this was trancekoded by the awesome trancekoder
require 'narray'
require 'modshogun'
require 'load'
require 'pp'

require 'rubygems'
require 'pry'

traindat = LoadMatrix.load_numbers('../data/fm_train_real.dat')
testdat = LoadMatrix.load_numbers('../data/fm_test_real.dat')
label_traindat = LoadMatrix.load_labels('../data/label_train_multiclass.dat')
Expand All @@ -17,20 +11,19 @@ def classifier_gaussiannaivebayes_modular(fm_train_real=traindat,fm_test_real=te

feats_train=Modshogun::RealFeatures.new
feats_train.set_feature_matrix(fm_train_real)
feats_test=Modshogun::RealFeatures.new
feats_test=Modshogun::RealFeatures.new
feats_test.set_feature_matrix(fm_test_real)
binding.pry
labels=Modshogun::Labels.new(label_train_multiclass)
labels=Modshogun::Labels.new
labels.set_labels(label_train_multiclass)

gnb=Modshogun::GaussianNaiveBayes.new(feats_train, labels)
gnb_train = gnb.train()
output=gnb.apply(feats_test).get_labels()
return gnb, gnb_train, output


end
if __FILE__ == $0
print 'GaussianNaiveBayes'
classifier_gaussiannaivebayes_modular(*parameter_list[0])

if __FILE__ == $0
puts 'GaussianNaiveBayes'
pp classifier_gaussiannaivebayes_modular(*parameter_list[0])
end
@@ -1,12 +1,9 @@
# this was trancekoded by the awesome trancekoder
require 'narray'
require 'modshogun'
require 'load'
require 'pp'

strings=['hey','guys','i','am','a','string']

parameter_list=[[strings]]
parameter_list=[strings]

def features_string_char_modular(strings)

Expand All @@ -23,13 +20,11 @@ def features_string_char_modular(strings)
#replace string 0
f.set_feature_vector(['t','e','s','t'], 0)

puts "it fails right..."
return f.get_features, f


end

if __FILE__ == $0
puts 'StringCharFeatures'
features_string_char_modular(*parameter_list[0])

pp features_string_char_modular(*parameter_list)
end
14 changes: 7 additions & 7 deletions examples/undocumented/ruby_modular/load.rb
Expand Up @@ -55,16 +55,16 @@ def load_cubes(filename)


def load_labels(filename)
matrix = []
vector = []
File.open(filename) do |file|
file.each_line do |line|
ary = []
line.split(" ").each{ |n| ary << n.to_f }
matrix << ary
vector << line.to_f
end
end
matrix = NArray.to_na(matrix)
matrix = matrix.reshape(1, matrix.total)
end
vector = NArray.to_na(vector)
# loading vectors is not yet implemented,
# use a 1D array instead (for now)
#vector = vector.reshape(1, vector.total)
end
extend self
end
70 changes: 70 additions & 0 deletions src/interfaces/ruby_modular/modshogun.rb
@@ -0,0 +1,70 @@
require 'narray'
require 'modshogun.so'

def LoadMatrix(filename, type = :numbers)
case type
when :numbers
x = LoadMatrix.load_numbers(filename)
pp x
when :dna
LoadMatrix.load_dna(filename)
when :cubes
LoadMatrix.load_cubes(filename)
when :labels
LoadMatrix.load_labels(filename)
end
end

module LoadMatrix
def load_numbers(filename)
matrix = []
File.open(filename) do |file|
file.each_line do |line|
ary = []
line.split(" ").each{ |n| ary << n.to_f }
matrix << ary
end
end
#pp matrix
matrix = NArray.to_na(matrix)
#pp matrix
matrix = matrix.transpose(1,0)
#pp matrix
end

def load_dna(filename)
matrix=[]
File.open(filename) do |file|
file.each_line do |line|
line.split("\n").each{|n| matrix << n }
end
end
matrix
end


def load_cubes(filename)
matrix=[]
File.open(filename) do |file|
file.each_line do |line|
line.split("\n").each{|n| matrix << n }
end
end
matrix
end


def load_labels(filename)
vector = []
File.open(filename) do |file|
file.each_line do |line|
vector << line.to_f
end
end
vector = NArray.to_na(vector)
# loading vectors is not yet implemented,
# use a 1D array instead (for now)
#vector = vector.reshape(1, vector.total)
end
extend self
end

0 comments on commit 0f8b2ff

Please sign in to comment.