RituJoshi/RecommendationSystem
0
1{2 "cells": [3 {4 "cell_type": "code",5 "execution_count": null,6 "id": "d8df944a",7 "metadata": {},8 "outputs": [],9 "source": [10 "# EVALUATION NOTEBOOK\n",11 "import pandas as pd\n",12 "from src.models.recommender import SHLRecommender\n",13 "from src.evaluation.metrics import recall_at_k, mean_average_precision\n",14 "\n",15 "# Defining benchmark queries with known relevant assessments\n",16 "benchmarks = [\n",17 " {\n",18 " \"query\": \"Hiring for Java developers who can collaborate with business teams, need 40-min assessment\",\n",19 " \"relevant\": [\"Java Programming Test\", \"Inductive Reasoning\", \"Situational Judgement Test\"]\n",20 " },\n",21 " # Adding more benchmark queries\n",22 "]\n",23 "\n",24 "recommender = SHLRecommender()\n",25 "results = []\n",26 "\n",27 "for benchmark in benchmarks:\n",28 " recommendations = recommender.get_recommendations(benchmark[\"query\"])\n",29 " rec_names = [r[\"description\"] for r in recommendations]\n",30 " \n",31 " recall = recall_at_k(benchmark[\"relevant\"], rec_names, k=3)\n",32 " map_score = mean_average_precision(benchmark[\"relevant\"], rec_names, k=3)\n",33 " \n",34 " results.append({\n",35 " \"query\": benchmark[\"query\"],\n",36 " \"recall@3\": recall,\n",37 " \"map@3\": map_score\n",38 " })\n",39 "\n",40 "results_df = pd.DataFrame(results)\n",41 "print(f\"Mean Recall@3: {results_df['recall@3'].mean()}\")\n",42 "print(f\"Mean MAP@3: {results_df['map@3'].mean()}\")\n"43 ]44 }45 ],46 "metadata": {47 "kernelspec": {48 "display_name": "Python 3 (ipykernel)",49 "language": "python",50 "name": "python3"51 },52 "language_info": {53 "codemirror_mode": {54 "name": "ipython",55 "version": 356 },57 "file_extension": ".py",58 "mimetype": "text/x-python",59 "name": "python",60 "nbconvert_exporter": "python",61 "pygments_lexer": "ipython3",62 "version": "3.10.0"63 }64 },65 "nbformat": 4,66 "nbformat_minor": 567}68 