void check_cv(Index& idx, Classifier& c, double min_accuracy) { std::vector<doc_id> docs = idx.docs(); classify::confusion_matrix mtx = c.cross_validate(docs, 5); ASSERT_GREATER(mtx.accuracy(), min_accuracy); ASSERT_LESS(mtx.accuracy(), 100.0); }
classify::confusion_matrix cv(Index& idx, Classifier& c, bool even) { std::vector<doc_id> docs = idx.docs(); classify::confusion_matrix matrix; auto seconds = common::time<std::chrono::seconds>( [&]() { matrix = c.cross_validate(docs, 5, even); }); std::cerr << "time elapsed: " << seconds.count() << "s" << std::endl; matrix.print(); matrix.print_stats(); return matrix; }