From 9fe6d978313f742477863ff42b9158cf2f55414f Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Sun, 25 Sep 2011 21:43:57 +0200 Subject: kbest, ksampler refactoring --- dtrain/pairsampling.h | 48 +++++++++++++++++------------------------------- 1 file changed, 17 insertions(+), 31 deletions(-) (limited to 'dtrain/pairsampling.h') diff --git a/dtrain/pairsampling.h b/dtrain/pairsampling.h index a8521485..2e4ab155 100644 --- a/dtrain/pairsampling.h +++ b/dtrain/pairsampling.h @@ -8,47 +8,33 @@ namespace dtrain { -struct Pair -{ - SparseVector first, second; - size_t first_rank, second_rank; - double first_score, second_score; -}; - inline void -sample_all_pairs(Samples* kb, vector &training) +sample_all_pairs(vector* s, vector > &training) { - for (size_t i = 0; i < kb->GetSize()-1; i++) { - for (size_t j = i+1; j < kb->GetSize(); j++) { - Pair p; - p.first = kb->feats[i]; - p.second = kb->feats[j]; - p.first_rank = i; - p.second_rank = j; - p.first_score = kb->scores[i]; - p.second_score = kb->scores[j]; + for (size_t i = 0; i < s->size()-1; i++) { + for (size_t j = i+1; j < s->size(); j++) { + pair p; + p.first = (*s)[i]; + p.second = (*s)[j]; training.push_back(p); - } // j - } // i + } + } } inline void -sample_rand_pairs(Samples* kb, vector &training, MT19937* prng) +sample_rand_pairs(vector* s, vector > &training, + MT19937* prng) { - for (size_t i = 0; i < kb->GetSize()-1; i++) { - for (size_t j = i+1; j < kb->GetSize(); j++) { + for (size_t i = 0; i < s->size()-1; i++) { + for (size_t j = i+1; j < s->size(); j++) { if (prng->next() < .5) { - Pair p; - p.first = kb->feats[i]; - p.second = kb->feats[j]; - p.first_rank = i; - p.second_rank = j; - p.first_score = kb->scores[i]; - p.second_score = kb->scores[j]; + pair p; + p.first = (*s)[i]; + p.second = (*s)[j]; training.push_back(p); } - } // j - } // i + } + } } -- cgit v1.2.3