#ifndef RANKSVM_H #define RANKSVM_H #include #include #include #include"../tools/dataProvider.h" #include "../tools/easylogging++.h" // Model File: // Model type -> String // Number of features (fsize) -> int // Weight matrix size, (fsize,1) -> (int,int) // Weight vector // beta typedef struct SVMModel{ Eigen::VectorXd weight; double beta; } SVMModel; class RSVM //Virtual base class for all RSVM operations { protected: SVMModel model; int fsize; public: virtual int train(DataList &D)=0; virtual int predict(DataList &D,std::vector &res)=0; // TODO Not sure how to construct this // Possible solution: generate a nxn matrix each row contains the sorted list of ranker result. int saveModel(const std::string fname); static RSVM* loadModel(const std::string fname); virtual std::string getName()=0; SVMModel getModel(){ return model;}; int setModel(const SVMModel &model); }; extern double C; #endif