int main() { // build a naive bayes classifier Classifier classifier; // test for accuracy classifier.test(); return 0; }
void check_split(Index& idx, Classifier& c, double min_accuracy) { // create splits std::vector<doc_id> docs = idx.docs(); std::mt19937 gen(47); std::shuffle(docs.begin(), docs.end(), gen); size_t split_idx = docs.size() / 8; std::vector<doc_id> train_docs{docs.begin() + split_idx, docs.end()}; std::vector<doc_id> test_docs{docs.begin(), docs.begin() + split_idx}; // train and test c.train(train_docs); classify::confusion_matrix mtx = c.test(test_docs); ASSERT_GREATER(mtx.accuracy(), min_accuracy); ASSERT_LESS(mtx.accuracy(), 100.0); }