diff options
author | Joe Zhao <ztuowen@gmail.com> | 2015-05-31 23:47:10 +0800 |
---|---|---|
committer | Joe Zhao <ztuowen@gmail.com> | 2015-05-31 23:47:10 +0800 |
commit | 17be62773adb99fc3fac11c13b3f7cd8bf5f2258 (patch) | |
tree | ed696a0da8617df487fcbd2d2baae1cd92abdf92 /model | |
parent | f77a4937a5f09d1f49a114ada70b9e11be44b1d6 (diff) | |
download | ranksvm-17be62773adb99fc3fac11c13b3f7cd8bf5f2258.tar.gz ranksvm-17be62773adb99fc3fac11c13b3f7cd8bf5f2258.tar.bz2 ranksvm-17be62773adb99fc3fac11c13b3f7cd8bf5f2258.zip |
misc
Diffstat (limited to 'model')
-rw-r--r-- | model/rankmisc.h | 51 | ||||
-rw-r--r-- | model/ranksvm.cpp | 5 |
2 files changed, 56 insertions, 0 deletions
diff --git a/model/rankmisc.h b/model/rankmisc.h new file mode 100644 index 0000000..2d2011d --- /dev/null +++ b/model/rankmisc.h @@ -0,0 +1,51 @@ +// +// Created by joe on 5/31/15. +// + +#ifndef RANKSVM_RANKMISC_H +#define RANKSVM_RANKMISC_H + +#include"ranksvm.h" + +class RSVML1:public RSVM +{ +public: + std::string getName() + { + return "L1"; + }; + virtual int train(RidList &D){LOG(FATAL)<< "NOT IMPLEMENTED"; return 0;}; + virtual int predict(RidList &D,std::vector<double> &res){ + res.clear(); + int n = D.getSize(); + Eigen::VectorXd one=Eigen::VectorXd::Ones(fsize); + for (int i=0;i<n;++i) + { + double r=D.getVecDot(i,one); + res.push_back(-r); + } + return 0; + }; +}; + +class RSVMBH:public RSVM +{ +public: + std::string getName() + { + return "BH"; + }; + virtual int train(RidList &D){LOG(FATAL)<< "NOT IMPLEMENTED"; return 0;}; + virtual int predict(RidList &D,std::vector<double> &res){ + res.clear(); + int n = D.getSize(); + for (int i=0;i<n;++i) + { + double r=D.getBha(i); + res.push_back(-r); + } + return 0; + }; +}; + +#endif //RANKSVM_RANKMISC_H diff --git a/model/ranksvm.cpp b/model/ranksvm.cpp index d246b2b..ed78fbe 100644 --- a/model/ranksvm.cpp +++ b/model/ranksvm.cpp @@ -1,5 +1,6 @@ #include"ranksvm.h" #include"ranksvmtn.h" +#include"rankmisc.h" #include"../tools/matrixIO.h" #include<iostream> #include<fstream> @@ -43,6 +44,10 @@ RSVM* RSVM::loadModel(const string fname){ if (type=="TN") rsvm = new RSVMTN(); + if (type=="L1") + rsvm = new RSVML1(); + if (type=="BH") + rsvm = new RSVMBH(); rsvm->fsize=fsize; SVMModel model; |