diff --git a/examples/undocumented/lua_modular/classifier_libsvm_minimal_modular.lua b/examples/undocumented/lua_modular/classifier_libsvm_minimal_modular.lua new file mode 100644 index 00000000000..4f07256324e --- /dev/null +++ b/examples/undocumented/lua_modular/classifier_libsvm_minimal_modular.lua @@ -0,0 +1,78 @@ +require 'shogun' +require 'load' + +function concatenate(...) + local result = ... + for _,t in ipairs{select(2, ...)} do + for row,rowdata in ipairs(t) do + for col,coldata in ipairs(rowdata) do + table.insert(result[row], coldata) + end + end + end + return result +end + +function rand_matrix(rows, cols, dist) + local matrix = {} + for i = 1, rows do + matrix[i] = {} + for j = 1, cols do + matrix[i][j] = math.random() + dist + end + end + return matrix +end + +function ones(num) + r={} + for i=1,num do + r[i]=1 + end + return r +end + + +num=1000 +dist=1 +width=2.1 +C=1 + +traindata_real=concatenate(rand_matrix(2,num, -dist),rand_matrix(2,num,dist)) +testdata_real=concatenate(rand_matrix(2,num,-dist), rand_matrix(2,num, dist)) + +trainlab={} +for i = 1, num do + trainlab[i] = -1 + trainlab[i + num] = 1 +end + +testlab={} +for i = 1, num do + testlab[i] = -1 + testlab[i + num] = 1 +end + +feats_train=RealFeatures(traindata_real) +feats_test=RealFeatures(testdata_real) +kernel=GaussianKernel(feats_train, feats_train, width) + +labels=Labels(trainlab) +svm=LibSVM(C, kernel, labels) +svm:train() + +kernel:init(feats_train, feats_test) +out=svm:apply():get_labels() + +err_num = 0 +for i = 1, num do + if out[i] > 0 then + err_num = err_num+1 + end + if out[i+num] < 0 then + err_num = err_num+1 + end +end + +testerr=err_num/(2*num) +print(testerr) diff --git a/src/interfaces/lua_modular/shogun.lua b/src/interfaces/lua_modular/shogun.lua index 55ec1e5c3af..1d9695053c7 100644 --- a/src/interfaces/lua_modular/shogun.lua +++ b/src/interfaces/lua_modular/shogun.lua @@ -152,3 +152,4 @@ WordFeatures = modshogun.WordFeatures AvgDiagKernelNormalizer = modshogun.AvgDiagKernelNormalizer StringUlongFeatures = modshogun.StringUlongFeatures StringWordFeatures = modshogun.StringWordFeatures +LibSVM = modshogun.LibSVM