From 62b6b42e27a4972397e94fdbb03e74ac3f5f1244 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Tue, 12 May 2015 13:30:55 +0800 Subject: misc --- main.cpp | 2 -- model/rankaccu.cpp | 20 +++++++++++--------- model/ranksvmtn.cpp | 22 +++++++++++----------- tools/fileDataProvider.h | 3 +-- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/main.cpp b/main.cpp index 4f080bb..e8666f8 100644 --- a/main.cpp +++ b/main.cpp @@ -50,8 +50,6 @@ int predict(DataProvider &dp) { LOG(INFO)<<"Prediction started"; ofstream fout; - if (vm.count("output")) - fout.open(vm["output"].as().c_str()); ostream* ot; diff --git a/model/rankaccu.cpp b/model/rankaccu.cpp index 73b5d18..ba8aee6 100644 --- a/model/rankaccu.cpp +++ b/model/rankaccu.cpp @@ -75,20 +75,21 @@ void rank_accu(DataList &D,const vector pred) unsigned long n = D.getSize(); vector orig_rank(n),pred_rank(n),C(n); vector orig(n); + vector &dat = D.getData(); int i,j; - for (i=0;irank; + orig[i]=dat[i]->rank; } int cnt=0; double accu_nDCG=0; double accu_AP=0; i=j=0; - while (iqid!=D.getData()[i+1]->qid) + if ((i+1 == dat.size())|| dat[i]->qid!=dat[i+1]->qid) { double Y=0,Z=0; double AP=0; @@ -117,24 +118,25 @@ void rank_CMC(DataList &D,const std::vector pred,CMC & cmc) { unsigned long n = D.getSize(); vector orig_rank(n),pred_rank(n); vector orig(n); + vector &dat = D.getData(); int i,j; - for (i=0;irank; + orig[i]=dat[i]->rank; } int cnt=0; i=j=0; - while (iqid!=D.getData()[i+1]->qid) + if ((i+1 == dat.size())|| dat[i]->qid!=dat[i+1]->qid) { ranksort(j,i,pred_rank,pred,orig); for (int k=j;k<=i;++k) if (orig[pred_rank[k]]>0) { - cout<qid<<" "< &rank,const VectorXd &corr,const int cg_solve(const MatrixXd &D,const vector &rank,const VectorXd &corr,const VectorXd &alph,const vector &A1,const vector &A2,const VectorXd &b, VectorXd &x) { double alpha,beta,r_1,r_2; - int step=0; + int iter=0; VectorXd q; VectorXd Hs; cal_Hs(D,rank,corr,alph,A1,A2,x,Hs); @@ -56,7 +56,12 @@ int cg_solve(const MatrixXd &D,const vector &rank,const VectorXd &corr,cons r_1 = res.dot(res); if (r_1 cg_maxiter) + { + LOG(INFO) << "CG forced termination by maxiter, r:"< &rank,const VectorXd &corr,cons alpha = r_1/p.dot(q); x=x+p*alpha; res=res-q*alpha; - ++step; - if (step > cg_maxiter) - { - LOG(INFO) << "CG force terminated by maxiter"; - break; - } + ++iter; r_2=r_1; } return 0; @@ -167,7 +167,7 @@ int line_search(const VectorXd &w,const MatrixXd &D,const VectorXd &corr,const v ++iter; if (iter > cg_maxiter) { - LOG(INFO) << "line search force terminated by maxiter"; + LOG(INFO) << "line search forced termination by maxiter, prec:"<rank=1; - dat[i]->qid=std::to_string(qid); dat[i]->rank=qid; } else @@ -104,7 +103,7 @@ public: e->rank=-1; } e->feature.resize(d.getfSize()); - e->qid=std::to_string(qid); + e->qid=dat[pos]->qid; for (int j = 0; j < fsize; ++j) { e->feature(j) = fabs(dat[i]->feature(j) -dat[pos]->feature(j)); } -- cgit v1.2.3-70-g09d2