From e80d3cbbdc61c28fffbd75530888aa56f6ac15b1 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Thu, 11 Jun 2015 14:19:16 +0800 Subject: fscore --- model/rankaccu.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ train.cpp | 12 ++++++++++ 2 files changed, 84 insertions(+) diff --git a/model/rankaccu.h b/model/rankaccu.h index 8cac56c..a5866da 100644 --- a/model/rankaccu.h +++ b/model/rankaccu.h @@ -41,6 +41,78 @@ public: } }; +class Fscore +{ +private: + std::vector pos,neg; + std::vector apos,aneg; + int cpos,cneg; + int f; +public: + void clear() { + cpos=0;cneg=0;pos.clear();neg.clear();apos.clear();aneg.clear(); + } + Fscore(){clear();} + void init(int fsize) { + f=fsize;pos.resize(fsize);neg.resize(fsize);apos.resize(fsize);aneg.resize(fsize); + for (int i=0;i *p; + if (rid.getL(x)>0) { + p=' + cpos+=1; + } + else { + p=&aneg; + cneg+=1; + } + for (int i=0;i *p,*a; + if (rid.getL(x)>0) { + p=&pos; + a=' + } + else { + p=&neg; + a=&aneg; + } + for (int i=0;i getFscore(){ + std::vector res; + res.reserve(f); + for (int i=0;i pred,CMC & cmc); void rank_accu(RidList &D,const std::vector pred); diff --git a/train.cpp b/train.cpp index dd1b1e6..b6ac730 100644 --- a/train.cpp +++ b/train.cpp @@ -48,6 +48,8 @@ int predict(DataProvider &dp) { RidList D; vector L; CMC cmc; + Fscore f; + LOG(INFO)<<"Prediction started"; ofstream fout; @@ -82,6 +84,15 @@ int predict(DataProvider &dp) { *ot< pair; + f.audit(D); + pair=f.getFscore(); + for (int i=0;i(), "set input model file") ("output,o", po::value(), "set output model/prediction file") ("feature,i", po::value(), "set input feature file") -- cgit v1.2.3-70-g09d2