diff options
author | Joe Zhao <ztuowen@gmail.com> | 2015-03-11 01:08:36 +0800 |
---|---|---|
committer | Joe Zhao <ztuowen@gmail.com> | 2015-03-11 01:08:36 +0800 |
commit | fd32eb3bfc64564d64401f9c2ee03b1557be9c71 (patch) | |
tree | 5e997d765df9632f057ef597c490287a702b6a6a | |
parent | f6c22b46449fa77f90e319e4b159ccb6c2a5732b (diff) | |
download | ranksvm-fd32eb3bfc64564d64401f9c2ee03b1557be9c71.tar.gz ranksvm-fd32eb3bfc64564d64401f9c2ee03b1557be9c71.tar.bz2 ranksvm-fd32eb3bfc64564d64401f9c2ee03b1557be9c71.zip |
svm model struct
-rw-r--r-- | model/ranksvm.cpp | 17 | ||||
-rw-r--r-- | model/ranksvm.h | 11 |
2 files changed, 18 insertions, 10 deletions
diff --git a/model/ranksvm.cpp b/model/ranksvm.cpp index 628ef37..dc2ad9f 100644 --- a/model/ranksvm.cpp +++ b/model/ranksvm.cpp @@ -13,7 +13,8 @@ int RSVM::saveModel(const string fname){ std::ofstream fout(fname.c_str()); fout<<this->getName()<<endl; fout<<this->fsize<<endl; - Eigen::write_stream(fout, this->model); + Eigen::write_stream(fout, this->model.weight); + fout<<this->model.beta<<endl; return 0; } @@ -30,16 +31,18 @@ RSVM* RSVM::loadModel(const string fname){ rsvm = new RSVMTN(); rsvm->fsize=fsize; - VectorXd model; - Eigen::read_stream(fin, model); + SVMModel model; + Eigen::read_stream(fin, model.weight); + fin>>model.beta; rsvm->setModel(model); return rsvm; } -int RSVM::setModel(const Labels &model) { - if (model.rows()!=fsize) - LOG(FATAL) << "Feature size mismatch: "<<fsize<<" "<<model.cols(); - this->model=model; +int RSVM::setModel(const SVMModel &model) { + if (model.weight.cols()!=fsize) + LOG(FATAL) << "Feature size mismatch: "<<fsize<<" "<<model.weight.cols(); + this->model.weight=model.weight; + this->model.beta=model.beta; return 0; }
\ No newline at end of file diff --git a/model/ranksvm.h b/model/ranksvm.h index 5217b56..edb80f6 100644 --- a/model/ranksvm.h +++ b/model/ranksvm.h @@ -6,10 +6,15 @@ #include"../tools/dataProvider.h" #include "../tools/easylogging++.h" +typedef struct SVMModel{ + Eigen::VectorXd weight; + double beta; +} SVMModel; + class RSVM //Virtual base class for all RSVM operations { protected: - Eigen::VectorXd model; + SVMModel model; int fsize; public: virtual int train(DataSet &D, Labels &label)=0; @@ -19,9 +24,9 @@ public: int saveModel(const std::string fname); static RSVM* loadModel(const std::string fname); virtual std::string getName()=0; - Eigen::MatrixXd getModel(){ + SVMModel getModel(){ return model;}; - int setModel(const Labels &model); + int setModel(const SVMModel &model); }; #endif
\ No newline at end of file |