void predictAll(bool train){ loadData(data,train); loadUserItemData(users, items, data); for(int i = 0; i < data.size(); ++i){ int user = data[i].user; int item = data[i].item; ui[user].push_back(item); nu[user]++; ni[item]++; } int u; loadSim(train); map<int,int> test; if(train) getTestSet2(test); else getTestSet(test); string file = "../ret2/results-knni-all.txt"; if(train) file += ".0"; ofstream out(file.c_str()); for(map<int,int>::iterator k = test.begin(); k != test.end(); ++k){ int u = k->first; vector< pair<int,float> > ret; predict2(u, ret); out << u << "\t"; for(int i = 0; i < ret.size() && i < 500; ++i) out << ret[i].first << "\t" << ret[i].second / ret[0].second << "\t"; out << endl; } out.close(); }
int main(int argc, char **argv) { int n; for ( n = 3; n< 10; n++) { printf("N is %d, predict: %d, result %d\n", n, predict2(n), func(n)); } }