// // Created by joe on 4/12/15. // #ifndef RANKSVM_RANKACCU_H #define RANKSVM_RANKACCU_H #include<vector> #include"../tools/dataProvider.h" #define CMC_MAX 100 class CMC { private: std::vector<double> acc; int cnt; public: void clear(){for (int i=0;i<CMC_MAX;++i) acc[i]=0; cnt=0;}; CMC(){acc.reserve(CMC_MAX); clear();}; void addEntry(int idx) { ++cnt; if (idx <CMC_MAX) acc[idx]+=1;} std::vector<double> getAcc() { std::vector<double> res; res.reserve(CMC_MAX); double cumu = 0; for (int i=0;i<CMC_MAX;++i) { cumu += acc[i]; res[i] = cumu / cnt; } return res; } int getCount() { return cnt; } }; void rank_CMC(RidList &D,const std::vector<double> pred,CMC & cmc); void rank_accu(RidList &D,const std::vector<double> pred); #endif //RANKSVM_RANKACCU_H