summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--model/ranksvm.cpp1
-rw-r--r--model/ranksvm.h22
-rw-r--r--tools/dataProvider.h25
3 files changed, 48 insertions, 0 deletions
diff --git a/model/ranksvm.cpp b/model/ranksvm.cpp
new file mode 100644
index 0000000..38fb70c
--- /dev/null
+++ b/model/ranksvm.cpp
@@ -0,0 +1 @@
+#include"ranksvm.h" \ No newline at end of file
diff --git a/model/ranksvm.h b/model/ranksvm.h
new file mode 100644
index 0000000..ba79c48
--- /dev/null
+++ b/model/ranksvm.h
@@ -0,0 +1,22 @@
+#ifndef RANKSVM_H
+#define RANKSVM_H
+
+#include<Eigen/Dense>
+#include<string>
+#include"../tools/dataProvider.h"
+
+class RSVM //Virtual base class for all RSVM operations
+{
+protected:
+ Eigen::VectorXd* model;
+public:
+ virtual int train(DataProvider &D)=0;
+ int test();
+ int saveModel(string fname);
+ static RSVM loadModel(string fname);
+ string getName();
+ Eigen::MatrixXd getModel();
+ Eigen::MatrixXd setModel();
+};
+
+#endif \ No newline at end of file
diff --git a/tools/dataProvider.h b/tools/dataProvider.h
new file mode 100644
index 0000000..70a87f0
--- /dev/null
+++ b/tools/dataProvider.h
@@ -0,0 +1,25 @@
+#ifndef DATAPROV_H
+#define DATAPROV_H
+
+#include<Eigen/Dense>
+
+class DataProvider //Virtual base class for data input
+{
+private:
+ int size;
+ int attrSize;
+public:
+ int getSize(){
+ return size;
+ }
+ int getAttrSize(){
+ return attrSize;
+ }
+
+ virtual Eigen::MatrixXd* getAttr() = 0;
+ virtual Eigen::MatrixXd* getPref() = 0;
+ virtual int open();
+ virtual int parse();
+};
+
+#endif \ No newline at end of file