{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "ef0a1382-ffd5-4c15-8733-912cdb0e6a8a", "metadata": {}, "outputs": [], "source": [ "from sklearn.cluster import KMeans\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "id": "41d7ad0e-1406-4219-8135-8fd28e9fec31", "metadata": {}, "outputs": [], "source": [ "df=pd.read_csv(r\"C:\\Users\\hp\\Desktop\\Data_science\\AI FOLDER\\jamb_biology_sample.csv\")" ] }, { "cell_type": "code", "execution_count": 3, "id": "3c9cffe7-2752-44f7-8f5b-8d4d7437775b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 6 entries, 0 to 5\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Unnamed: 0 6 non-null object \n", " 1 Question_Number 5 non-null float64\n", " 2 Question 5 non-null object \n", " 3 Options 5 non-null object \n", " 4 Answer 5 non-null object \n", "dtypes: float64(1), object(4)\n", "memory usage: 372.0+ bytes\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 4, "id": "37c784bf-86dd-4ae8-a46b-d6c6c959cb69", "metadata": {}, "outputs": [], "source": [ "df1=pd.read_csv('SAMPLE.CSV')" ] }, { "cell_type": "code", "execution_count": 5, "id": "eaedadd5-1718-4212-bcfe-43ba71cfe9ab", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 8 entries, 0 to 7\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Subject 8 non-null object\n", " 1 Year 8 non-null int64 \n", " 2 Question_Number 8 non-null int64 \n", " 3 Question 8 non-null object\n", " 4 Options 8 non-null object\n", " 5 Answer 8 non-null object\n", "dtypes: int64(2), object(4)\n", "memory usage: 516.0+ bytes\n" ] } ], "source": [ "df1.info()" ] }, { "cell_type": "code", "execution_count": 6, "id": "59e2ebb5-f5fb-4afb-83a4-780ba5146713", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Subject', 'Year', 'Question_Number', 'Question', 'Options', 'Answer'], dtype='object')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.columns" ] }, { "cell_type": "code", "execution_count": 7, "id": "348d0e3f-b82e-4bda-a0bd-d68c1c16eae3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Subject 0\n", "Year 0\n", "Question_Number 0\n", "Question 0\n", "Options 0\n", "Answer 0\n", "dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 8, "id": "68d32bf0-996e-4cc7-941d-c2f8340b2d40", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: sentence-transformers in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (5.1.0)\n", "Requirement already satisfied: transformers<5.0.0,>=4.41.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (4.55.2)\n", "Requirement already satisfied: tqdm in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (4.67.1)\n", "Requirement already satisfied: torch>=1.11.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (2.8.0)\n", "Requirement already satisfied: scikit-learn in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (1.6.1)\n", "Requirement already satisfied: scipy in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (1.15.2)\n", "Requirement already satisfied: huggingface-hub>=0.20.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (0.34.4)\n", "Requirement already satisfied: Pillow in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (11.1.0)\n", "Requirement already satisfied: typing_extensions>=4.5.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sentence-transformers) (4.12.2)\n", "Requirement already satisfied: filelock in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (3.19.1)\n", "Requirement already satisfied: numpy>=1.17 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (2.2.3)\n", "Requirement already satisfied: packaging>=20.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (24.2)\n", "Requirement already satisfied: pyyaml>=5.1 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (6.0.2)\n", "Requirement already satisfied: regex!=2019.12.17 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (2025.7.34)\n", "Requirement already satisfied: requests in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (2.32.3)\n", "Requirement already satisfied: tokenizers<0.22,>=0.21 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (0.21.4)\n", "Requirement already satisfied: safetensors>=0.4.3 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers) (0.6.2)\n", "Requirement already satisfied: fsspec>=2023.5.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from huggingface-hub>=0.20.0->sentence-transformers) (2025.7.0)\n", "Requirement already satisfied: sympy>=1.13.3 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from torch>=1.11.0->sentence-transformers) (1.14.0)\n", "Requirement already satisfied: networkx in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from torch>=1.11.0->sentence-transformers) (3.5)\n", "Requirement already satisfied: jinja2 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from torch>=1.11.0->sentence-transformers) (3.1.5)\n", "Requirement already satisfied: setuptools in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from torch>=1.11.0->sentence-transformers) (75.8.0)\n", "Requirement already satisfied: mpmath<1.4,>=1.1.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from sympy>=1.13.3->torch>=1.11.0->sentence-transformers) (1.3.0)\n", "Requirement already satisfied: colorama in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from tqdm->sentence-transformers) (0.4.6)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from jinja2->torch>=1.11.0->sentence-transformers) (3.0.2)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from requests->transformers<5.0.0,>=4.41.0->sentence-transformers) (3.4.1)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from requests->transformers<5.0.0,>=4.41.0->sentence-transformers) (3.10)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from requests->transformers<5.0.0,>=4.41.0->sentence-transformers) (2.3.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from requests->transformers<5.0.0,>=4.41.0->sentence-transformers) (2025.1.31)\n", "Requirement already satisfied: joblib>=1.2.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from scikit-learn->sentence-transformers) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in c:\\users\\hp\\appdata\\local\\programs\\python\\python313\\lib\\site-packages (from scikit-learn->sentence-transformers) (3.6.0)\n" ] } ], "source": [ "!pip install sentence-transformers" ] }, { "cell_type": "code", "execution_count": 9, "id": "bf1f2e37-be5f-4680-8f46-1e84a0f1a8f1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model loaded successfully!\n" ] } ], "source": [ "from sentence_transformers import SentenceTransformer\n", "\n", "model = SentenceTransformer(\"all-MiniLM-L6-v2\")\n", "print(\"Model loaded successfully!\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "2c6480b3-52fd-4aac-a5f4-b938da929332", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f0b4f7c909f84fe39244ff37b9c7d2e6", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Batches: 0%| | 0/1 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SubjectYearQuestion_NumberQuestionOptionsAnswerCluster
0Biology20221Which of the following structures is responsib...A. Trachea | B. Lungs | C. Gills | D. SpiraclesC1
1Biology20222The causative organism of malaria is?A. Plasmodium | B. Trypanosoma | C. Taenia | D...A1
2Chemistry20221Which of the following is a noble gas?A. Oxygen | B. Neon | C. Nitrogen | D. ChlorineB1
3Chemistry20222The chemical formula of sulphuric acid is?A. H2SO3 | B. H2SO4 | C. H2S | D. H2OB1
4Mathematics20221Simplify: 2(3x + 4) - (x - 2).A. 5x + 6 | B. 5x + 10 | C. 7x + 2 | D. 7x + 10B0
5Mathematics20222The mean of 2, 4, 6, 8, 10 is?A. 4 | B. 5 | C. 6 | D. 7C3
6English20221Choose the word that best completes the senten...A. go | B. goes | C. went | D. goingC2
7English20222Which of the following is a synonym of 'Happy'?A. Sad | B. Joyful | C. Angry | D. LonelyB2
\n", "" ], "text/plain": [ " Subject Year Question_Number \\\n", "0 Biology 2022 1 \n", "1 Biology 2022 2 \n", "2 Chemistry 2022 1 \n", "3 Chemistry 2022 2 \n", "4 Mathematics 2022 1 \n", "5 Mathematics 2022 2 \n", "6 English 2022 1 \n", "7 English 2022 2 \n", "\n", " Question \\\n", "0 Which of the following structures is responsib... \n", "1 The causative organism of malaria is? \n", "2 Which of the following is a noble gas? \n", "3 The chemical formula of sulphuric acid is? \n", "4 Simplify: 2(3x + 4) - (x - 2). \n", "5 The mean of 2, 4, 6, 8, 10 is? \n", "6 Choose the word that best completes the senten... \n", "7 Which of the following is a synonym of 'Happy'? \n", "\n", " Options Answer Cluster \n", "0 A. Trachea | B. Lungs | C. Gills | D. Spiracles C 1 \n", "1 A. Plasmodium | B. Trypanosoma | C. Taenia | D... A 1 \n", "2 A. Oxygen | B. Neon | C. Nitrogen | D. Chlorine B 1 \n", "3 A. H2SO3 | B. H2SO4 | C. H2S | D. H2O B 1 \n", "4 A. 5x + 6 | B. 5x + 10 | C. 7x + 2 | D. 7x + 10 B 0 \n", "5 A. 4 | B. 5 | C. 6 | D. 7 C 3 \n", "6 A. go | B. goes | C. went | D. going C 2 \n", "7 A. Sad | B. Joyful | C. Angry | D. Lonely B 2 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=pd.read_csv('waec.csv')\n", "df" ] }, { "cell_type": "code", "execution_count": 17, "id": "f611eef0-2747-4d62-a5c9-772e52a65018", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Subject', 'Year', 'Question_Number', 'Question', 'Options', 'Answer',\n", " 'Cluster'],\n", " dtype='object')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns" ] }, { "cell_type": "code", "execution_count": 18, "id": "6b64d3c7-f6f6-4b1b-9638-d2024d1166fa", "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import PCA" ] }, { "cell_type": "code", "execution_count": 19, "id": "b5abbdb6-e8ec-4214-990e-977b7dbd839e", "metadata": {}, "outputs": [ { "data": { "image/png": "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HyoS1QUAcP52797tApMdO3ZY3rx57eKLL7YffvjBrr76anf71q1bY3RXa9SokX366af21FNP2RNPPOEml1TnsOrVq6fgswAYaQEQDwUoymX2v+TPn9/dplGXd99919q3b285cuRwX26TJ0+OcX/9ruuzZctmzZo1sw8++MDdb//+/SGlfOmMYP369S1nzpwujeyyyy6zLVu2xLjPRx99ZGXLlnVfyLfddptrcwoAMHvvvffcKIvSwRTA/Pjjj9EBi/cZqzRdfzfffLOtXbvW3UeTSl5zzTUpsOVATAQtQBJJL7UazzzzjN1yyy32+++/uy82pRz8999/7rbNmzfbTTfd5GZT/u233+zee++1J598MuR1nz592t23adOmbv2aP+Cee+6JUVi7ceNGdxZQE6Hpoo44mv0ZAACkHQQtSJeo1QidAgEvZcu7PP/88zH25e233+460+h6zR2wePFid5s606jVpmZe1v8aBdHyCWlZqhad1157rV144YVWpUoV16qzdOnSMQpKFSAqdaFx48bWsWPHVLmfAQBA7KhpQbpFrUZolNL15ptvxriuQIEC0T8rP9qjFC614FQKgii94JJLLolxX6V6hUqPoyBHszErnaF58+ZuVKdYsWLRyygtzH8eBt3mPT4AAEgbGGlBukWtRmi0fRpF8b/4By1ZsmSJsbz2gUY/wkWBpdLCVBz6+eef20UXXWSLFi1KtscHAAApj6AFiAW1GudPKWFqlelPk5olVO3atV1LzgULFrg0MHW2AQAA6QdBC9ItajVCo+4xO3fujHHZu3dvSPdVMKc+//369bN169bZhAkTorvUhDJLtYJDBSsK6jQKNX36dFu/fr3bXwAAIP2gpgXpVnqq1VCg8f3339viBYvs8MEjliVrFitzYVlrfU1rq1evXowe/YE0yZj/dokCNQUj8SlXrpx98cUX9sgjj9hrr73mZlTWiNT9998fUv2QUvP0OEq9+/fff9129OjRwwVDAAAg/WCkBelWeqjVOHbsmL34wot29x1d7dv3v7SyxwtZkwI1rU5URdu5eLMNeuQpu7tLNzdLcjAaFfH5fOdcvIBFPyvNzZ9qevxHna677jo3OnL8+HGbPXu2Cz5KlizpaoFEy/rXAan2Z8WKFe7nIkWK2KRJk+yff/5xIz6aa0Bpe16Q5b+sp3fv3m45AACQdjDSAiSC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EY2gBQAAAEBEI2gBAAAAENEyp/QGAAAApEU9Tj1oWU/mCus6T546bGaTwrpOIDVgpAUAAABARCNoAQAAABDRCFoAAAAARDSCFgAAAAARjaAFAAAAQEQjaAEAAAAQ0QhagAjWpUsXu/766y01ueKKK6x3794pvRkAACANIWgBziOgyJAhg913333n3NajRw93m5YJxV9//eWWX7FihaUWc+bMcdu8f//+GNd/9dVXNnjw4BTbLgAAkPYQtADnoVSpUjZ+/Hg7duxY9HXHjx+3Tz/91EqXLm3pUYECBSx37twpvRkAACANIWgBzkOdOnVc4KLRBY9+VsBSu3bt6OumTZtml19+ueXLl88uuOACu/baa23jxo3Rt5crV879r/to9EIpVv5eeuklK1asmLuvRnFOnToVfduJEyfs0UcftRIlSljOnDmtQYMGbhTEM27cOPe4U6ZMsUqVKlmOHDnspptusqNHj9oHH3xgZcuWtfz581uvXr3szJkz0ff76KOPrF69ei4AKVq0qHXo0MF2794dPTLUrFkz97Pu6z+qFJgepu3r16+f209RUVFWoUIFe++999xt+/btszvuuMMKFSpk2bNnt4oVK9r7778flr8NAABIOzKn9AYAqd1dd93lDrR18C1jx461rl27xggcjhw5Yn369LGLL77YDh8+bAMGDLD27du7dLCMGTPa4sWLrX79+vbjjz9atWrVLGvWrNH3nT17tgtY9P+GDRvs1ltvtVq1aln37t3d7T179rTVq1e7EZ/ixYvbpEmTrFWrVrZy5UoXBIgClJEjR7plDh06ZDfccIN7fAUzU6dOtU2bNtmNN95ol112mVu/KDBSmpcCHQUr2n4FJlpeAciXX37p7rN27VrLkyePCzqC6dSpky1cuNA9fs2aNW3z5s22d+9ed9vTTz/ttv3777+3ggULuufnP2oFAAAgBC3Aebrzzjvt8ccfty1btrjf58+f74ID/6BFB/f+FNhodEEH7NWrV3c/i0ZSNKrhTyMZo0aNskyZMlnlypWtTZs2NnPmTBe0bN261QVM+l8Bi2jURSM7uv7555+PDkDefPNNu/DCC93vGmnRSMquXbssV65cVrVqVTdyosDIC1oUjHnKly/vgo5LLrnEBV26j9LApHDhwi74CWbdunU2YcIEmzFjhjVv3jx6XR5tt0aXNKIjGvUBAAAI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u2PHDmvdurVFskaNGrntzJs3b5I+zty5c61t27ZWvHjxVBHMAQAQKoIWAEG1atXKHWivX7/eHnnkERs0aJANHz48+vaOHTta7969rV27djZ79mxbsWKFPf300/bNN9/Y9OnTY6xr3Lhxdsstt9jBgwftl19+SdDj//XXX/b9999bs2bN7KGHHrJrr702RvBUtGhRi4qKskimgE3bqUAiKR05csRq1qxpo0ePTtLHAQAguRG0AAhKgYAOtMuUKWP333+/NW/e3CZPnuxumzBhgn3yySf22Wef2RNPPGGXXHKJlS1b1gUws2bNcgGG/4jM+++/74KcDh062HvvvZegxy9RooTVqVPHPY4CIgUwCoI8/iMKCnD0u7avcePGlj17drdt69atsyVLlriRII0KaWRmz549MR7v3XfftSpVqli2bNmscuXK9sYbb0Tf5q33q6++cs8tR44cLjhYuHBh9DJbtmxxoxz58+e3nDlzWrVq1Wzq1Kmxpod9+eWXbhk9T+27l19+Ocb26Lrnn3/e7rrrLsudO7eVLl3ajWzFRc/rueees/bt24e0jwEASC0IWgCERAHAyZMn3c8KWCpVquSClEA6OPdPg9IojNLFFPTceeedNn78eDcikBhXXnmlCxYUPMRl4MCB9tRTT9mvv/5qmTNndsHSY489Zq+99pr9/PPPtmHDBhswYED08no++n3IkCH2559/umBBo0YffPBBjPU++eST9uijj7pRpYsuushuv/326FGfHj162IkTJ1yK1sqVK+3FF190AVIwy5YtcyNPt912m1tWo1h6PP9gTBTIKNBavny5PfDAAy54XLt2baL2HQAAqVnmlN4AAJFNIyUzZ860H374wR588EF3nVLGFLSEQiMrOjjPlCmTq2kpX768TZw40dWtJIZGQX7//fc4l1Fg0bJlS/ezUsoUXOg5XHbZZe66bt26xQgQFOQoQLjhhhvc7+XKlbPVq1fb22+/bZ07d46x3jZt2rifn3nmGTdSogBI27R161a78cYbrUaNGu52Pc/YvPLKK3bVVVe5QEUUAOnxlH7nv1+uueYaF6xIv379bMSIES4IDHXfAwCQVjDSAiCoKVOmuJECpUsp7ejWW291IwJeIBMKpUNpVEQjLB79HGqKWDB67PhqQy6++OLon1XEL14w4V23e/du97NGfTZu3OgCGT1f76I0K10f23qLFSvm/vfW06tXL3cfBUYKguIKrDSa4wVQHv2uYPDMmTNBH0/PWely3uMBAJCeMNICICjVbrz55puuiFzdqJRm5dHIwJo1a+Jdx6effmrHjx93Hcb8gw51AFOdidaTUDrg10hIXNRxzOMFOIHXeV3IDh8+7P4fM2ZMjO0UjQ7Ft15vPXfffbcb3fnuu+9cI4KhQ4e60RtvdCox/B8vcLsBAEhPGGkBEJSKydXqWAXg/gGLqEZEQYcK4wMpKDlw4ID7WSMq6jymGhDv8ttvv7kiebUvTigV+asGRGlY4aJRFwVlmzZtcs/X/xJfcBSoVKlSdt9997nRJT1vBULBqOB//vz5Ma7T7wriAgMlAADASAuARFAR+aRJk1ytiAreW7RoYYUKFXIBheouNLqg7lcqhFeRu2o+/Ol+mvdF6VSBAZFHRe07d+506VK7du2yadOmudELtTzu1KlTWJ+P6lOU3qUGAmq1rMdeunSp7du3z/r06RPSOtT+WWl0Cjx0P9WeKDgJRgGNupoNHjzYpd2pC9moUaNidCxLDI0aqcbGs3nzZhcoFihQwAWfAACkVgQtABJMaUpK/VILXo2YqOuWgo+KFSu6gEJpUurWVbVq1XMCFlFL3p49e7qWwNddd13Qx1CQoroRrVdthNU1bOTIka4wPmPG8A4SK7VLbYxVCN+3b183yqQaGAUioVJwpQ5imkgzT548LvhRABeMWjirLbM6lilw0fNUEJfY5gQeBVr+7aa9gEv7LLAzGQAAqUkGX6gVtQAAAACQAqhpAQAAABDRCFoAAAAARDSCFgAAAAARjaAFAAAAQEQjaAEAAAAQ0QhaAAAAAEQ0ghYAAAAAEY2gBQAAAEBEI2gBAAAAENEIWgAAAABENIIWAAAAABbJ/h+Ly01OOMjXNgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pca = PCA(n_components=2)\n", "reduced_embeddings = pca.fit_transform(embeddings)\n", "\n", "# === Plot the clusters ===\n", "plt.figure(figsize=(8, 6))\n", "scatter = plt.scatter(\n", " reduced_embeddings[:, 0], \n", " reduced_embeddings[:, 1], \n", " c=df1[\"Cluster\"], cmap=\"tab10\", s=100, alpha=0.7, edgecolors=\"k\"\n", ")\n", "\n", "# Label points with subject for clarity\n", "for i, txt in enumerate(df[\"Subject\"]):\n", " plt.annotate(txt, (reduced_embeddings[i, 0] + 0.02, reduced_embeddings[i, 1] + 0.02))\n", "\n", "plt.title(\"Clustering of WAEC Objective Questions (BERT + KMeans)\")\n", "plt.xlabel(\"PCA Dimension 1\")\n", "plt.ylabel(\"PCA Dimension 2\")\n", "plt.colorbar(scatter, label=df1['Cluster'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "id": "e7f52571-c0bf-46a2-acce-6fbdc713da6c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(\n", " reduced_embeddings[:, 0], \n", " reduced_embeddings[:, 1], \n", " c=df[\"Cluster\"], cmap=\"tab10\", s=100, alpha=0.7, edgecolors=\"k\"\n", ")" ] }, { "cell_type": "code", "execution_count": 21, "id": "b8b53db2-4cdd-4c16-8593-77fce61b257b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SubjectYearQuestion_NumberQuestionOptionsAnswer
0Biology20181In humans, the sex of a child is determined by...A. X chromosome | B. Y chromosome | C. XX pair...B
1Biology20182Which process leads to variation during meiosis?A. Cytokinesis | B. Crossing over | C. DNA rep...B
2Biology20203The genotype of an individual refers to theA. outward appearance | B. genetic constitutio...B
3Biology20194Sickle-cell anaemia is controlled by a pair ofA. multiple alleles | B. co-dominant alleles |...B
4Biology20195A backcross between F1 and the recessive paren...A. test cross | B. out cross | C. selfing | D....A
.....................
195English202246'Break the ice' means toA. start a conversation | B. freeze water | C....A
196English201847'Cut corners' means toA. be neat | B. be dishonest to save effort | ...B
197English201848'A blessing in disguise' meansA. good thing that seemed bad | B. a bad omen ...A
198English202249'Piece of cake' meansA. dessert | B. something very easy | C. a sma...B
199English201950'On cloud nine' meansA. very sad | B. very happy | C. very tired | ...B
\n", "

200 rows × 6 columns

\n", "
" ], "text/plain": [ " Subject Year Question_Number \\\n", "0 Biology 2018 1 \n", "1 Biology 2018 2 \n", "2 Biology 2020 3 \n", "3 Biology 2019 4 \n", "4 Biology 2019 5 \n", ".. ... ... ... \n", "195 English 2022 46 \n", "196 English 2018 47 \n", "197 English 2018 48 \n", "198 English 2022 49 \n", "199 English 2019 50 \n", "\n", " Question \\\n", "0 In humans, the sex of a child is determined by... \n", "1 Which process leads to variation during meiosis? \n", "2 The genotype of an individual refers to the \n", "3 Sickle-cell anaemia is controlled by a pair of \n", "4 A backcross between F1 and the recessive paren... \n", ".. ... \n", "195 'Break the ice' means to \n", "196 'Cut corners' means to \n", "197 'A blessing in disguise' means \n", "198 'Piece of cake' means \n", "199 'On cloud nine' means \n", "\n", " Options Answer \n", "0 A. X chromosome | B. Y chromosome | C. XX pair... B \n", "1 A. Cytokinesis | B. Crossing over | C. DNA rep... B \n", "2 A. outward appearance | B. genetic constitutio... B \n", "3 A. multiple alleles | B. co-dominant alleles |... B \n", "4 A. test cross | B. out cross | C. selfing | D.... A \n", ".. ... ... \n", "195 A. start a conversation | B. freeze water | C.... A \n", "196 A. be neat | B. be dishonest to save effort | ... B \n", "197 A. good thing that seemed bad | B. a bad omen ... A \n", "198 A. dessert | B. something very easy | C. a sma... B \n", "199 A. very sad | B. very happy | C. very tired | ... B \n", "\n", "[200 rows x 6 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df3=pd.read_csv(r\"C:\\Users\\hp\\Desktop\\Data_science\\AI FOLDER\\waec_objectives_200_balanced (1).csv\")\n", "df3" ] }, { "cell_type": "code", "execution_count": 22, "id": "2e7a0bb5-0465-4e5b-b7b1-e01169085764", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model loaded successfully!\n" ] } ], "source": [ "\n", "model= SentenceTransformer(\"all-MiniLM-L6-v2\")\n", "print(\"Model loaded successfully!\")" ] }, { "cell_type": "code", "execution_count": 23, "id": "3a0f3385-eac9-4b56-9660-0044b0c8eb63", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f9867133d9a443ef9455c7d4b6c21bef", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Batches: 0%| | 0/7 [00:00 3]\n", "\n", "stopwords = {\n", " \"the\",\"and\",\"which\",\"that\",\"with\",\"from\",\"this\",\"into\",\"does\",\"have\",\"been\",\n", " \"what\",\"when\",\"where\",\"your\",\"their\",\"for\",\"are\",\"was\",\"will\",\"shall\",\"each\"\n", "}\n", "\n", "# === Pipeline Function ===\n", "def cluster_questions_pipeline(csv_path, out_csv=\"questions_with_clusters.csv\"):\n", " # Step 1: Load data\n", " df = pd.read_csv(r\"C:\\Users\\hp\\Desktop\\Data_science\\AI FOLDER\\waec_objectives_200_balanced (1).csv\")\n", " print(f\" Loaded {len(df)} questions\")\n", "\n", " # Step 2: Generate embeddings\n", " model = SentenceTransformer(\"all-MiniLM-L6-v2\")\n", " embeddings = model.encode(df[\"Question\"].tolist(), show_progress_bar=True)\n", "\n", " df[\"Cluster\"] = -1 # placeholder\n", "\n", " # Step 3: Cluster per subject\n", " for subject in df[\"Subject\"].unique():\n", " mask = df[\"Subject\"] == subject\n", " X = embeddings[mask.values]\n", "\n", " print(f\"\\n Subject: {subject} | Questions: {mask.sum()}\")\n", " if len(X) < 3:\n", " print(\" Not enough questions for clustering\")\n", " df.loc[mask, \"Cluster\"] = 0\n", " continue\n", "\n", " # Pick best k with silhouette\n", " best_k, best_score = None, -1\n", " for k in range(2, min(6, len(X))): # limit k to avoid errors\n", " kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)\n", " labels = kmeans.fit_predict(X)\n", " score = silhouette_score(X, labels)\n", " print(f\" k={k} → silhouette={score:.3f}\")\n", " if score > best_score:\n", " best_k, best_score = k, score\n", "\n", " print(f\"Best k for {subject}: {best_k} (score={best_score:.3f})\")\n", "\n", " # Final clustering\n", " kmeans = KMeans(n_clusters=best_k, random_state=42, n_init=10)\n", " labels = kmeans.fit_predict(X)\n", " df.loc[mask, \"Cluster\"] = labels\n", "\n", " # Step 4: PCA Visualization\n", " reduced = PCA(n_components=2).fit_transform(X)\n", " plt.figure(figsize=(8,6))\n", " plt.scatter(reduced[:,0], reduced[:,1], c=labels, cmap=\"tab10\", s=50, alpha=0.7, edgecolors=\"k\")\n", " plt.title(f\"{subject} Clusters (k={best_k}, silhouette={best_score:.3f})\")\n", " plt.xlabel(\"PCA Dimension 1\")\n", " plt.ylabel(\"PCA Dimension 2\")\n", " plt.show()\n", "\n", " # Step 5: Cluster Evaluation\n", " print(f\"\\n📊 Cluster sizes for {subject}:\")\n", " print(df[df[\"Subject\"] == subject][\"Cluster\"].value_counts())\n", "\n", " print(f\"\\n Top keywords per cluster in {subject}:\")\n", " for cluster in sorted(df[df[\"Subject\"] == subject][\"Cluster\"].unique()):\n", " cluster_texts = df[(df[\"Subject\"] == subject) & (df[\"Cluster\"] == cluster)][\"Question\"]\n", " all_words = []\n", " for q in cluster_texts:\n", " all_words.extend(extract_keywords(q, stopwords))\n", " common = Counter(all_words).most_common(5)\n", " print(f\" Cluster {cluster}: {common}\")\n", "\n", " # Step 6: Save results\n", " df.to_csv(out_csv, index=False)\n", " np.save(\"embeddings.npy\", embeddings)\n", "\n", " print(f\"\\n Pipeline complete! Saved results to {out_csv}\")\n", " return df, embeddings\n" ] }, { "cell_type": "code", "execution_count": 30, "id": "f303bd69-a4e1-4156-9215-05fdda345dcd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SubjectYearQuestion_NumberQuestionOptionsAnswerCluster
0Biology20221Which of the following structures is responsib...A. Trachea | B. Lungs | C. Gills | D. SpiraclesC1
1Biology20222The causative organism of malaria is?A. Plasmodium | B. Trypanosoma | C. Taenia | D...A1
2Chemistry20221Which of the following is a noble gas?A. Oxygen | B. Neon | C. Nitrogen | D. ChlorineB1
3Chemistry20222The chemical formula of sulphuric acid is?A. H2SO3 | B. H2SO4 | C. H2S | D. H2OB1
4Mathematics20221Simplify: 2(3x + 4) - (x - 2).A. 5x + 6 | B. 5x + 10 | C. 7x + 2 | D. 7x + 10B0
5Mathematics20222The mean of 2, 4, 6, 8, 10 is?A. 4 | B. 5 | C. 6 | D. 7C3
6English20221Choose the word that best completes the senten...A. go | B. goes | C. went | D. goingC2
7English20222Which of the following is a synonym of 'Happy'?A. Sad | B. Joyful | C. Angry | D. LonelyB2
\n", "
" ], "text/plain": [ " Subject Year Question_Number \\\n", "0 Biology 2022 1 \n", "1 Biology 2022 2 \n", "2 Chemistry 2022 1 \n", "3 Chemistry 2022 2 \n", "4 Mathematics 2022 1 \n", "5 Mathematics 2022 2 \n", "6 English 2022 1 \n", "7 English 2022 2 \n", "\n", " Question \\\n", "0 Which of the following structures is responsib... \n", "1 The causative organism of malaria is? \n", "2 Which of the following is a noble gas? \n", "3 The chemical formula of sulphuric acid is? \n", "4 Simplify: 2(3x + 4) - (x - 2). \n", "5 The mean of 2, 4, 6, 8, 10 is? \n", "6 Choose the word that best completes the senten... \n", "7 Which of the following is a synonym of 'Happy'? \n", "\n", " Options Answer Cluster \n", "0 A. Trachea | B. Lungs | C. Gills | D. Spiracles C 1 \n", "1 A. Plasmodium | B. Trypanosoma | C. Taenia | D... A 1 \n", "2 A. Oxygen | B. Neon | C. Nitrogen | D. Chlorine B 1 \n", "3 A. H2SO3 | B. H2SO4 | C. H2S | D. H2O B 1 \n", "4 A. 5x + 6 | B. 5x + 10 | C. 7x + 2 | D. 7x + 10 B 0 \n", "5 A. 4 | B. 5 | C. 6 | D. 7 C 3 \n", "6 A. go | B. goes | C. went | D. going C 2 \n", "7 A. Sad | B. Joyful | C. Angry | D. Lonely B 2 " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 31, "id": "89d89406-f506-4efc-a5a5-ab563c6b5167", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Cluster\n", "1 4\n", "2 2\n", "0 1\n", "3 1\n", "Name: count, dtype: int64" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Cluster'].value_counts()" ] }, { "cell_type": "code", "execution_count": 32, "id": "3b4a5f0a-9145-4778-b3b8-6b35ffb86c25", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Loaded 200 questions\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a05102880d8a405aa83dbf6db879f0f0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Batches: 0%| | 0/7 [00:00" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Cluster sizes for Biology:\n", "Cluster\n", "1 32\n", "2 13\n", "0 5\n", "Name: count, dtype: int64\n", "\n", " Top keywords per cluster in Biology:\n", " Cluster 0: [('biological', 1), ('magnification', 1), ('refers', 1), ('instrument', 1), ('used', 1)]\n", " Cluster 1: [('following', 4), ('responsible', 3), ('blood', 3), ('water', 2), ('unit', 2)]\n", " Cluster 2: [('variation', 2), ('refers', 2), ('cell', 2), ('called', 2), ('theory', 2)]\n", "\n", " Subject: Chemistry | Questions: 50\n", " k=2 → silhouette=0.043\n", " k=3 → silhouette=0.038\n", " k=4 → silhouette=0.029\n", " k=5 → silhouette=0.043\n", "Best k for Chemistry: 2 (score=0.043)\n" ] }, { "data": { "image/png": "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+2/4+PioQLdXr16qTNqiRYvS9ktg7OfnpypCEBEREREZfTqEITEdgoiIiKjkxWtGMxJMRERERFRYGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyLA3dASKinCQlJeHIkSO4dOkSUlJSUKFCBXTq1AkuLi6G7hpRmqioKJw4cQLR0dHqtdm8eXPY29sbultElAMzjUajyamBqYuMjFQfaBEREXB2djZ0d4hMysmTJzHjhx9xOzgEmtJlYWZlhZRHD+BpbYmRL76AoUOHwszMzNDdJBMWHx+PJUuWYO32nQiKi4PGyhrmSYko6+SIF/r2wbBhw2BpyfEmouIYr/GdSUTF0tmzZzFu8lREVa2Jqq+NhkOZsmp7Ukw0AvbuwqxlfyA5ORnDhw83dFfJRCUmJuKLyVOw7cIluHXpiTot28LayQnxYaF4ePgAZq9YhYePHuGzTz+FuTmzD4mKG74riajYkQtUc3/+GeHlKqH2yLfTAmBh5eCIqn0GwKlbHyxZvgJBQUEG7SuZrs2bN2PHuQuo8uZ7qNS1pwqAha2bu3qNlhv2OlbvO4CDBw8auqtElA0GwURU7Fy+fBkX/O+iQo8+MLewyLZN+We6IMzCCtu2bdN7/4jkRG3tps2w8m0Il6rVs23jUa8BNFWqY93GjXrvHxHljkEwERU7t27dQryFJVyr19TZxsLGBpaVq+HmrVt67RuRCAkJwY37D+DZqGmO7Uo1aorTl66o1B0iKl4YBBNR8ZSHObsyGsdpcWQIUqlEAw3Mra1zbGduZY1UaJCamqq3vhFR3jAIJqJip2bNmrBLTUHYtSs62yTHxSHl9g3UqlVLr30jEm5ubnBzcED4Db8c28n+CmXKwDqXYJmI9I9BMBEVOz4+PmhcozoCtm9Cqo7LyPd2bUMpM6B79+567x+RBLUDundDxPHDqmJJduJDQxB3/jQG9u6l9/4RUe4YBBNRsSO1f98f/Q48gwNxaeFsRNy5rVIftIHFjVX/In7/Tox+dRhKlSpl6O6SiRo4cCCq21vjyoLZiAl8mGFf5F1/XF3wIxqULY2ePXsarI9EpBsXy8gFF8sgMpyLFy9i5o8/4mrAAyQ5u8JcFssIeYLyTo54c9gr6N+/PxfLIIPy9/fHZ1Om4urDR0gtXwmWbu5IehIEq8AHaFStCr6eMgVeXl6G7iZRiRdZgHiNQXAuGAQTGZZMKDpz5kyGZZPbt28PW1tbQ3eNSJHKD7K096FDhxARFQ13Vxd07NgRTZs25SIZRHrCILgIMAgmIiIiKnnxGk9RiYiIiMjkMAgmIiIiIpPDIJiIiIiITA6DYCIiIiIyOQyCiYiIiMjkMAgmIiIiIpPDIJiIiIiITA6DYCIiIiIyOQyCiYiIiMjkMAgmIiIiIpPDIJiIiIiITA6DYCIiIiIyOQyCiYiIiMjkMAgmIiIiIpPDIJiIiIiITA6DYCIiIiIyOQyCiYiIiMjkWBq6A0RERMVNTEwMdu/ejZ179+JJWDjcnJ3QuX17dO3aFS4uLobuHhEVAo4EExERpXPjxg28Mup1fD5vAQ6nWuJe9To4YeWAqYuXYshrr+H8+fOG7iIRFQIzjUajKYw/VFJFRkaqs/6IiAg4OzsbujtERFSEgoODMXL0aNyxd0Gt196CjYtr2r7E6Chc//NXeD4KwJKf5qBixYoG7SsRPV28xpFgIiKi/2/jxo24FZOA2m+OyRAAC2tHJ9Qe+TYeWlhj9erVBusjERUOBsFEREQA5MLoum3b4Ni0BazsHbJtY2FtA/dW7bBl337Ex8frvY9EVHgYBBMREQFISEhASEQknCtVybGdU8XKiIqPV5ddich4MQgmIiKSckmWlrAwN0dSTEyO7ZJjY2FuZgZra2u99Y2ICh+DYCIiov8fBLdt0hihp47l2O7JyaNoUKMGXF0z5gwTkXFhEExERPT/9e/bF9YPA/Dw8P5s9z85dxq4cRWD+vWFmZmZ3vtHRIWHi2UQERH9f82aNcPIQQOwaPVyRNy6Ce+2HWDnWQbxocF4dPQQEk4ewdCundGlSxdDd5WInhLrBOeCdYKJiEyLfC1u2bIF/6xaBb8Hj5Ck0cDSzAxVS3vihQH9MWjQIJib80IqkbHHawyCc8EgmIjINKWmpsLPz099/js6OsLHx0flDRNRyYjX+G4mIiLKhoz21q5d29DdIKIiwus5RERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyLA3dgeJOo9Go/0dGRhq6K0RERESUDW2cpo3b8oJBcC6ioqLU/ytUqGDorhARERFRLnGbi4sL8sJMk5+Q2QSlpqbi4cOHcHJygpmZWZGcuUiAHRAQAGdn50L/+2QYPK4lD49pycNjWjLxuJrmMdVoNCoA9vb2hrl53rJ9ORKcC3kiy5cvX+T3IweVb9aSh8e15OExLXl4TEsmHlfTO6YueRwB1uLEOCIiIiIyOQyCiYiIiMjkMAg2MBsbG0yePFn9n0oOHteSh8e05OExLZl4XEsemyI6ppwYR0REREQmhyPBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBBhAaGoqXXnpJFXx2dXXFyJEjER0dnevvHT16FJ06dYKDg4P63fbt2yMuLk4vfaaiOaZC5qb27NlTrUi4bt26Iu8rFd1xlfZjxoxBrVq1YGdnh4oVK+K9995DRESEXvtN/2f+/PmoXLkybG1t0aJFC5w4cSLH9itXroSPj49qX69ePWzZskVvfaWiOa6LFy9Gu3bt4Obmpm5dunTJ9XVAxf+9qrV8+XL1/TlgwIB83yeDYAOQL9XLly9j586d2LRpEw4cOIA33ngj1wC4R48e6Natm3phnDx5Eu+++26elwak4ndMtWbPnl0kS3KT/o+rLLEut1mzZuHSpUtYtmwZtm3bpoJn0r8VK1bgww8/VKWVzpw5gwYNGqB79+4ICgrKtv2RI0cwZMgQdbzOnj2rvlTlJseSjPe47tu3Tx3XvXv3qu9SWX5XvksfPHig975T4RxTrTt37mDcuHHqJKdApEQa6c+VK1ekJJ3m5MmTadu2bt2qMTMz0zx48EDn77Vo0UIzceJEPfWS9HFMxdmzZzXlypXTPHr0SP2NtWvX6qHHVNTHNb3//vtPY21trUlKSiqinpIuzZs314wePTrt55SUFI23t7dmxowZ2bZ//vnnNb17987y2fvmm28WeV+p6I5rZsnJyRonJyfN77//XoS9pKI+pnIcW7durVmyZIlm+PDhmv79+2vyi8OIeiZnoXJZtWnTpmnb5NKMjOgeP34829+RMyHZV7p0abRu3RplypRBhw4dcOjQIT32nArzmIrY2FgMHTpUXQLy8vLSU2+pqI9rZpIKIekUlpaWRdRTyk5iYiJOnz6tjpmWHDv5WY5tdmR7+vZCRqN0tSfjOK7ZffYmJSXB3d29CHtKRX1Mp02bpuKip7nSxiBYzwIDA9VBS0++HOXNKPuyc/v2bfX/KVOm4PXXX1eXVxs3bozOnTvjxo0beuk3Fe4xFWPHjlUnNf3799dDL0lfxzW94OBgfPnll3lOjaHCI899SkqKGjRIT37Wdfxke37ak3Ec18w++eQTeHt7ZznhIeM5pjII+Ouvv6p876fBILiQTJgwQeV15nS7du1agf52amqq+v+bb76JESNGoFGjRvjxxx/V5JulS5cW8iMhfRzTDRs2YM+ePSofmErOcU0vMjISvXv3Rp06ddQJLBEZ3jfffKMmUq1du1ZNwCLjExUVhVdeeUUFwB4eHk/1t3h9rpB89NFHePXVV3NsU7VqVXXZO3Oid3JysppVruuSeNmyZdX/5cs0vdq1a+PevXtP3XfS/zGVAPjWrVvqcnt6gwcPVgn+MpGDjO+4pv+QlomsTk5O6svWysqqUPpOeSdfjhYWFnj8+HGG7fKzruMn2/PTnozjuGrJhFUJgnft2oX69esXcU+pqI6pfHfKhLi+fftmGSyUq3V+fn6oVq1anu6bQXAh8fT0VLfctGrVCuHh4Sr/pUmTJmkBkRxAKQmSHSkZIpdu5MCmd/36dVVai4zvmMpo5KhRozJsk3JMMsKf/o1NxnVctSPAkkdqY2OjRvw52mQY1tbW6rjt3r07rXSSHDv5WSrr6Drmsv+DDz5I2yaVQWQ7Ge9xFd9++y2+/vprbN++PUOePxnfMZUShhcvXsywbeLEiWrwYc6cOar6R57leyodPbUePXpoGjVqpDl+/Ljm0KFDmho1amiGDBmStv/+/fuaWrVqqf1aP/74o8bZ2VmzcuVKzY0bN1SlCFtbW83NmzcN9CjoaY9pZqwOYfzHNSIiQlUTqFevnnpvStUP7U1mMpN+LV++XGNjY6NZtmyZqvbxxhtvaFxdXTWBgYFq/yuvvKKZMGFCWvvDhw9rLC0tNbNmzdJcvXpVM3nyZI2VlZXm4sWLBnwU9LTH9ZtvvlEVWlatWpXhPRkVFWXAR0FPc0wzK2h1CAbBBhASEqK+SB0dHVVgO2LEiAxvRn9/fxUQ7d27N8PvSamQ8uXLa+zt7TWtWrXSHDx40AC9p8I8pukxCDb+4yr/l5+zu0lb0r+5c+dqKlasqIIgKcN07NixtH0dOnRQX56ZS9rVrFlTta9bt65m8+bNBug1FeZxrVSpUrbvSTnJIeN9rxZGEGwm/3n6wWwiIiIiIuPB6hBEREREZHIYBBMRERGRyWEQTEREREQmh0EwEREREZkcBsFEREREZHIYBBMRERGRyWEQTEREREQmh0EwEREREZkcBsFEREbIzMwM69atQ3G2b98+1c/w8HBDd4WIKAsGwURE/9+rr76qgja5WVtbo3r16pg2bRqSk5PT2sgim4sWLUKLFi3g6OgIV1dXNG3aFLNnz0ZsbGyGv3f//n31d3x9ffN9/1ZWVihTpgy6du2KpUuXIjU1NUPbR48eoWfPnijOWrdurfrp4uJSpPdz4MAB9O3bF97e3kZxckBExQODYCKidHr06KECtxs3buCjjz7ClClT8N1336Xtf+WVV/DBBx+gf//+2Lt3L86dO4cvvvgC69evx44dOzL8rWXLluH5559HZGQkjh8/nq/7v3PnDrZu3YqOHTvi/fffR58+fTIE415eXrCxsUFxJicA0k8JTItSTEwMGjRogPnz5xfp/RBRCaMhIiJl+PDhmv79+2fY1rVrV03Lli3Vv1esWKGRj81169Zl+d3U1FRNeHh4hp+rVq2q2bZtm+aTTz7RvP766wW6f7F79251v4sXL07bJj+vXbtW/dvf31/9LP1r27atxtbWVtO0aVONn5+f5sSJE5omTZpoHBwcND169NAEBQVl+NvyN318fDQ2NjaaWrVqaebPn5+2T/t3V69erXnmmWc0dnZ2mvr162uOHDmS1ubOnTuaPn36aFxdXTX29vaaOnXqaDZv3qz27d27V/1+WFhYWvtVq1apNtbW1ppKlSppZs2alaE/su3rr7/WjBgxQuPo6KipUKGC5pdffsn1ucvueSEiyglHgomIcmBnZ4fExET177///hu1atVSo8CZyWhn+sv+Mkos6RFdunTByy+/jOXLl6sRy4Lo1KmTGulcs2ZNju0mT56MiRMn4syZM7C0tMTQoUPx8ccfY86cOTh48CBu3ryJSZMmpbWXxyM/f/3117h69SqmT5+uRrV///33DH/3888/x7hx49Sod82aNTFkyJC0UenRo0cjISFBpSRcvHgRM2fOVGki2Tl9+rQaGX/xxRdVWxlll/uTEfP0vv/+e5VicvbsWbzzzjt4++234efnV6DnjohIF0ude4iITJgMKu7evRvbt2/HmDFj1DZJkZAgOC9+/fVXFexZWFionOCqVati5cqVKu+3IHx8fHDhwoUc20ig2r17d/VvSaGQYFUeQ5s2bdS2kSNHZgg4JWiWgHPQoEHq5ypVquDKlSv45ZdfMHz48Ax/t3fv3urfU6dORd26dVVALX26d+8eBg8ejHr16qn98jh1+eGHH9C5c2cV+AoJqOX+JN0k/fPSq1cvFfyKTz75BD/++KM6qcjrc09ElBccCSYiSmfTpk1qJNPW1lZNPHvhhRfUiKX439X23Ek1BBm1lRFgLfm3BMYFJfedW25t/fr10/4tk+qENjjVbgsKClL/llHpW7duqcBYHq/29tVXX6ntuv5u2bJl1f+1f+e9995TvyOBtgTVOQXqMtqsDci15Gc5uUhJScn2/uQxS16x9v6IiAoLR4KJiNKRiWgLFy5Uk7qk2oCkFWjJyOW1a9dy/Rv//PMP4uPjVQWJ9EGsVHi4fv26+jv5JQGkjNTmRCpKaGkD5szbtFUmoqOj1f8XL16coZ9CRq9z+7vavzNq1Cg1+rx582Y1MXDGjBlqdFk7el4Q6e8vc7+JiAoLR4KJiNJxcHBQpdEqVqyYIQAWkmMrQaxUgshMgtyIiAj1bxnxlcoSkkOrvZ0/fx7t2rVT5c7ya8+ePSqHVtIOCouMCkuQf/v2bfV4099yC7Yzq1ChAt566y01+i2PWwLr7NSuXRuHDx/OsE1+lpOCzIE3EVFR40gwEVEeyaSutWvXqlxbmYDWrVs3eHp6qgBV8lZl9LNy5cpqYppMOpOc2fTk96TusKQPZA6wtWSSWWBgoEoPePz4MbZt26ZGV6VE2rBhwwr18Uh+r6QzyIQ+Kc0m933q1CmEhYXhww8/zNPfkHJxkjYigaz8nuTuSrCbHQmQmzVrhi+//FKlmRw9ehTz5s3DggULnupxyKi25Chr+fv7qxMPd3d3dTJDRJQdBsFERHkkl+Ul1UEWy5ARXamqIMFsjRo1VIAqaQFSjaFOnTpZAmAxcOBAvPvuu9iyZQv69euX7X1I0Ct5t/J33dzcVFWIn376SU1UMzcv3It3kspgb2+vJqaNHz9ejYJLDrEEtnklwbpUiJCFQZydnVUwLScE2WncuDH+++8/VZFCAmF5nHJSUNDJgloSuEsai5Y2gJfnLHPlCSIiLTOpk5b2ExERERGRCWBOMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTERERkclhEExEREREJodBMBERERGZHAbBRERERGRyGAQTEREREUzN/wPw4u48+tfKQwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Cluster sizes for Chemistry:\n", "Cluster\n", "1 36\n", "0 14\n", "Name: count, dtype: int64\n", "\n", " Top keywords per cluster in Chemistry:\n", " Cluster 0: [('reaction', 6), ('rate', 3), ('aldehydes', 2), ('between', 2), ('functional', 1)]\n", " Cluster 1: [('following', 6), ('water', 5), ('process', 4), ('used', 4), ('strong', 3)]\n", "\n", " Subject: Mathematics | Questions: 50\n", " k=2 → silhouette=0.223\n", " k=3 → silhouette=0.328\n", " k=4 → silhouette=0.430\n", " k=5 → silhouette=0.452\n", "Best k for Mathematics: 5 (score=0.452)\n" ] }, { "data": { "image/png": "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fomIiIhIMxj8EhEREZFmMPglIiIiIs1g8EtEREREmsHgl4iIiIg0g8EvEREREWkGg18iIiIi0gwGv0RERESkGQx+iYiIiEgzGPwSERERkWYw+CUiIiIizWDwS0RERESaweCXiIiIiDSDwS8RERERaQaDXyIiIiLSDAa/RERERKQZDH6JiIiISDMY/BIRERGRZjD4JSIiIiLNYPBLRERERJrB4JeIiIiINIPBLxERERFpBoNfIiIiItIMBr9EREREpBkMfomIiIhIMxj8EhEREZFmMPglIiIiIs1g8EtEREREmsHgl4iIiIg0g8EvEREREWmGubEbQMYVERGBP/74Q/3f09MTTz/9NGxtbY3dLCIiIqIiYaLT6XRFs+myISoqCk5OToiMjISjoyPKitjYWLz66qvYsWMHUlJS1DJ5K1hZWaF///744osvYGrKCwNERERUtuI19vxqUHx8PHr06IEbN26gfv36qFevnnrDhIWF4cyZM1i1apW6788//2QATERERGUKIxsNmjVrFq5du4aePXuiffv2cHV1hZmZGTw8PNC5c2d06tQJR44cwdKlS43dVCIiIqJCxeBXY1JTU7F69WpUqVIF1apVM7hO3bp14e3tjZ9//hla2i9r167FwIED0aFDB/Tu3Rv/+c9/kJiYaOymERERUSFi8KsxV65cUYPb/Pz8clyvZs2aKvVBC8GfvM6mTZuqHOhLly6p13z37l18+OGH6kRg//79xm4iERERFRLm/GpMXFyc+r+lpWWO61lYWKj/SyCY27qlmZwI9OnTR73Ovn37omrVqjAxMVH3BQYGqgGBzz77LDZu3KgCYSIiIird2POrMRLcySC2+/fv57ie3C8lz+zt7VGWSVULGRnar18/lQaiD3yFpH489dRTKvj/6KOPjNpOIiIiKhwMfjVGyn+0aNECFy9eVFUfsisXcvXqVXTv3h1lnVS0qFy5shrsZ4icANSuXRsHDx5UvcRERERUujH41aCpU6eq9If169dnCegePHiglkv1h3fffRdlfZDbw4cP4evrm+N6FStWVOvKCQMRERGVbsz51aAnnngCixcvxiuvvKIqOkjwZ2dnp3p87927p3o7ly9froK+sk7SHJKTk3NcR+6XCUD0edBERERUepWanl/poRs+fLi6bO/s7IwxY8YgOjo618cdOnQIHTt2VMGdPLZd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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Cluster sizes for Mathematics:\n", "Cluster\n", "1 10\n", "4 10\n", "2 10\n", "0 10\n", "3 10\n", "Name: count, dtype: int64\n", "\n", " Top keywords per cluster in Mathematics:\n", " Cluster 0: [('contains', 10), ('balls', 10), ('probability', 10), ('picking', 10), ('ball', 10)]\n", " Cluster 1: [('solve', 10)]\n", " Cluster 2: [('find', 10)]\n", " Cluster 3: [('evaluate', 10)]\n", " Cluster 4: [('simplify', 10)]\n", "\n", " Subject: English | Questions: 50\n", " k=2 → silhouette=0.042\n", " k=3 → silhouette=0.047\n", " k=4 → silhouette=0.054\n", " k=5 → silhouette=0.056\n", "Best k for English: 5 (score=0.056)\n" ] }, { "data": { "image/png": "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hkREREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZoGBLxERERGZBQa+RERERGQWGPgSERERkVlg4EtEREREZiFPgW9cXBz27duHCxcuZDkvPj4eixYtys+xEREREREVfuB7+fJlVK9eHS1btkTt2rXRqlUr3Lt3L+38R48e4dVXX82/kRERERERGSLwHTt2LGrVqoUHDx7g0qVLcHFxQbNmzXDr1i0Upjlz5qBChQqwt7dHo0aNcOTIEZ37zp8/Hy1atICbm5s6tW/fXu/+RERERGS6rHO744EDB7B9+3aUKFFCndatW4e3335bBZY7d+6Ek5NTwY4UwLJlyzB69Gj8/PPPKuidNWsWOnXqpALxUqVKZdl/165deOmll9C0aVMVKH/11Vfo2LEjzp8/D29v7wIfL/2PRqPByZMnsWHjRpwKDlbbalWpgu5duyIwMBAWFhaGHiIRERGZAQuNRCW5UKxYMRw+fFiVO6Q3YsQIrFmzBkuWLEHr1q2RkpJSUGNVwW6DBg3w448/qt9TU1Ph4+ODd999F+PGjcvx8jI2yfzK5QcPHpyr23z8+DGKFy+uSjnkMaC8SU5OxjczZuCfHbuQWNILxWr5q+2PL56DTWgIujdrggkffwxbW1tDD5WIiIiMVG7jtVxnfKtVq4Zjx45lCXy1QWjPnj1RkBITE3H8+HF8/PHHadssLS1V+cLBgwdzdR2xsbFISkqCu7u7zn0SEhLUKf0DSU9v3rx5WLJzN8oMfA0l6wakZXc1XXvi4fmz+GfRfLj8+CM+GD3a0EMlIiIiE5frGt8+ffrg77//zvY8CX6lpCCXyeOnEh4erjK2np6eGbbL76GhobmuUy5TpowKlnWZPn26+sagPUlGmZ5OREQElm3YBPfOPVGqXsaSBvm5RK06KNXjOfy7bTvu379v0LESERGR6ct14CuZ1o0bN+o8f+7cuar0oKj68ssv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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Cluster sizes for English:\n", "Cluster\n", "3 15\n", "4 10\n", "2 10\n", "1 9\n", "0 6\n", "Name: count, dtype: int64\n", "\n", " Top keywords per cluster in English:\n", " Cluster 0: [('passage', 4), ('author', 2), ('education', 2), ('effects', 2), ('argues', 1)]\n", " Cluster 1: [('correct', 3), ('choose', 2), ('fill', 2), ('paragraph', 2), ('next', 2)]\n", " Cluster 2: [('means', 10), ('idiom', 2), ('choose', 1), ('correct', 1), ('kicked', 1)]\n", " Cluster 3: [('choose', 6), ('meaning', 3), ('correct', 2), ('synonym', 2), ('word', 2)]\n", " Cluster 4: [('sound', 3), ('select', 2), ('correct', 2), ('pronoun', 1), ('girls', 1)]\n", "\n", " Pipeline complete! Saved results to questions_with_clusters.csv\n" ] } ], "source": [ "\n", "# Run the full pipeline\n", "df, embeddings = cluster_questions_pipeline(\"questions.csv\")\n" ] }, { "cell_type": "code", "execution_count": 33, "id": "af230955-8c53-4fc5-b4d1-513f251219ae", "metadata": {}, "outputs": [], "source": [ "import joblib\n" ] }, { "cell_type": "code", "execution_count": 34, "id": "a2650893-acfb-4792-b930-a67c2f751917", "metadata": {}, "outputs": [], "source": [ "model = joblib.load('model_3_n.pkl')" ] }, { "cell_type": "code", "execution_count": 35, "id": "4c7d30ea-b025-478e-8204-f8854d6342c8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 A. X chromosome | B. Y chromosome | C. XX pair...\n", "1 A. Cytokinesis | B. Crossing over | C. DNA rep...\n", "2 A. outward appearance | B. genetic constitutio...\n", "3 A. multiple alleles | B. co-dominant alleles |...\n", "4 A. test cross | B. out cross | C. selfing | D....\n", " ... \n", "195 A. start a conversation | B. freeze water | C....\n", "196 A. be neat | B. be dishonest to save effort | ...\n", "197 A. good thing that seemed bad | B. a bad omen ...\n", "198 A. dessert | B. something very easy | C. a sma...\n", "199 A. very sad | B. very happy | C. very tired | ...\n", "Name: Options, Length: 200, dtype: object" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.Options" ] }, { "cell_type": "code", "execution_count": 36, "id": "4f471c2c-bf31-4ddc-8b05-a33f23c87ac2", "metadata": {}, "outputs": [], "source": [ "import random\n", "import pandas as pd\n", "import joblib\n", "\n", "# Load clustered question bank and model\n", "df = pd.read_csv(\"questions_with_clusters.csv\")\n", "model = joblib.load(\"model_3_n.pkl\")\n", "\n", "def run_adaptive_quiz(subject=\"Biology\", n=5, student_features=None):\n", " # Pick random questions for this quiz\n", " subset = df[df[\"Subject\"] == subject].sample(n, random_state=random.randint(0, 1000))\n", "\n", " score = 0\n", " for _, row in subset.iterrows():\n", " print(f\"\\nQ: {row['Question']}\")\n", "\n", " # Split the options string into A, B, C, D\n", " opts = row['Options'].split(\" | \")\n", " for opt in opts:\n", " print(opt.strip())\n", "\n", " ans = input(\"Your answer (A/B/C/D): \").strip().upper()\n", " if ans == row[\"Answer\"].strip().upper():\n", " print(\" Correct!\")\n", " score += 1\n", " else:\n", " print(f\" Wrong! Correct answer is {row['Answer']}\")\n", "\n", " print(f\"\\nFinal Score: {score}/{n}\")\n", "\n", " # === Predict performance with supervised model ===\n", " if student_features is not None:\n", " pred = model.predict([student_features])[0]\n", " print(f\"\\n Predicted Student Performance: {pred}\")\n", "\n", " # Recommendation logic\n", " if pred == \"Weak\":\n", " print(\" Recommendation: Focus on foundational clusters (easy topics).\")\n", " elif pred == \"Average\":\n", " print(\" Recommendation: Mix of medium-level clusters.\")\n", " else:\n", " print(\" Recommendation: Attempt advanced/difficult clusters.\")\n" ] }, { "cell_type": "code", "execution_count": 37, "id": "6185382f-f919-492b-b68c-a778c3d095ce", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SubjectYearQuestion_NumberQuestionOptionsAnswerCluster
0Biology20181In humans, the sex of a child is determined by...A. X chromosome | B. Y chromosome | C. XX pair...B2
1Biology20182Which process leads to variation during meiosis?A. Cytokinesis | B. Crossing over | C. DNA rep...B2
2Biology20203The genotype of an individual refers to theA. outward appearance | B. genetic constitutio...B2
3Biology20194Sickle-cell anaemia is controlled by a pair ofA. multiple alleles | B. co-dominant alleles |...B2
4Biology20195A backcross between F1 and the recessive paren...A. test cross | B. out cross | C. selfing | D....A2
........................
195English202246'Break the ice' means toA. start a conversation | B. freeze water | C....A2
196English201847'Cut corners' means toA. be neat | B. be dishonest to save effort | ...B2
197English201848'A blessing in disguise' meansA. good thing that seemed bad | B. a bad omen ...A2
198English202249'Piece of cake' meansA. dessert | B. something very easy | C. a sma...B2
199English201950'On cloud nine' meansA. very sad | B. very happy | C. very tired | ...B2
\n", "

200 rows × 7 columns

\n", "
" ], "text/plain": [ " Subject Year Question_Number \\\n", "0 Biology 2018 1 \n", "1 Biology 2018 2 \n", "2 Biology 2020 3 \n", "3 Biology 2019 4 \n", "4 Biology 2019 5 \n", ".. ... ... ... \n", "195 English 2022 46 \n", "196 English 2018 47 \n", "197 English 2018 48 \n", "198 English 2022 49 \n", "199 English 2019 50 \n", "\n", " Question \\\n", "0 In humans, the sex of a child is determined by... \n", "1 Which process leads to variation during meiosis? \n", "2 The genotype of an individual refers to the \n", "3 Sickle-cell anaemia is controlled by a pair of \n", "4 A backcross between F1 and the recessive paren... \n", ".. ... \n", "195 'Break the ice' means to \n", "196 'Cut corners' means to \n", "197 'A blessing in disguise' means \n", "198 'Piece of cake' means \n", "199 'On cloud nine' means \n", "\n", " Options Answer Cluster \n", "0 A. X chromosome | B. Y chromosome | C. XX pair... B 2 \n", "1 A. Cytokinesis | B. Crossing over | C. DNA rep... B 2 \n", "2 A. outward appearance | B. genetic constitutio... B 2 \n", "3 A. multiple alleles | B. co-dominant alleles |... B 2 \n", "4 A. test cross | B. out cross | C. selfing | D.... A 2 \n", ".. ... ... ... \n", "195 A. start a conversation | B. freeze water | C.... A 2 \n", "196 A. be neat | B. be dishonest to save effort | ... B 2 \n", "197 A. good thing that seemed bad | B. a bad omen ... A 2 \n", "198 A. dessert | B. something very easy | C. a sma... B 2 \n", "199 A. very sad | B. very happy | C. very tired | ... B 2 \n", "\n", "[200 rows x 7 columns]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\"questions_with_clusters.csv\")\n", "df" ] }, { "cell_type": "markdown", "id": "c2da2151-d95f-4eb7-85fd-8076e03867b1", "metadata": {}, "source": [ "from collections import Counter\n", "import re\n", "\n", "def extract_keywords(text, stopwords=set()):\n", " words = re.findall(r\"\\b\\w+\\b\", text.lower())\n", " return [w for w in words if w not in stopwords and len(w) > 3]\n", "\n", "stopwords = {\"the\",\"and\",\"which\",\"that\",\"with\",\"from\",\"this\",\"into\",\"does\",\"have\",\"been\",\"what\",\"when\",\"where\",\"your\",\"their\"}\n", "\n", "for subject in df[\"Subject\"].unique():\n", " print(f\"\\n {subject} Keywords per cluster:\")\n", " for cluster in df[df[\"Subject\"] == subject][\"Cluster\"].unique():\n", " cluster_texts = df[(df[\"Subject\"] == subject) & (df[\"Cluster\"] == cluster)][\"Question\"]\n", " all_words = []\n", " for q in cluster_texts:\n", " all_words.extend(extract_keywords(q, stopwords))\n", " common = Counter(all_words).most_common(5)\n", " print(f\" Cluster {cluster}: {common}\")\n" ] }, { "cell_type": "code", "execution_count": 38, "id": "3dec20f2-6dbd-493b-a7cd-de15a08f084d", "metadata": {}, "outputs": [], "source": [ "\n", "df['difficulty'] = df['Cluster'].map({\n", " 0: 'Easy',\n", " 1: 'Easy',\n", " 2: 'Medium',\n", " 3: 'Medium',\n", " 4: 'Hard'\n", "})\n" ] }, { "cell_type": "code", "execution_count": 60, "id": "81f95910-f97a-451b-942a-e92238bc97d5", "metadata": {}, "outputs": [], "source": [ "## import joblib\n", "\n", "# Load your trained model from file\n", "model = joblib.load(\"model4.pkl\")\n", "def run_adaptive_quiz(subject, model, df, n=3):\n", " \"\"\"\n", " Adaptive quiz that predicts likelihood to pass using student features\n", " and adjusts it with quiz performance. Starting difficulty is based on G1/G2/G3.\n", " \"\"\"\n", " \n", " def get_valid_input(prompt, min_val=None, max_val=None):\n", " \"\"\"Helper to get valid integer input within optional range.\"\"\"\n", " while True:\n", " try:\n", " val = int(input(prompt))\n", " if (min_val is not None and val < min_val) or (max_val is not None and val > max_val):\n", " print(f\" Please enter a value between {min_val} and {max_val}.\")\n", " continue\n", " return val\n", " except ValueError:\n", " print(\"Invalid input. Please enter a number.\")\n", " \n", " print(f\"\\n=== Enter your study features for {subject} ===\")\n", " \n", " # Collect student features\n", " features = {\n", " 'G1': get_valid_input(\"First C.A test (0-20): \", 0, 20),\n", " 'G2': get_valid_input(\"Second C.A test (0-20): \", 0, 20),\n", " 'G3': get_valid_input(\"Third C.A test (0-20): \", 0, 20)\n", " }\n", " \n", " student_features = [features[key] for key in features]\n", " \n", " # Step 1: Assign starting difficulty based on G1/G2/G3 averages\n", " avg_score = (features['G1'] + features['G2'] + features['G3']) / 3\n", " if avg_score <= 8:\n", " difficulty = \"Easy\"\n", " elif avg_score <= 14:\n", " difficulty = \"Medium\"\n", " else:\n", " difficulty = \"Hard\"\n", " \n", " print(f\"\\n Starting difficulty based on past performance: {difficulty}\\n\")\n", " \n", " # Step 2: Filter questions by subject\n", " subject_questions = df[df['Subject'] == subject]\n", " if subject_questions.empty:\n", " print(f\" No questions available for subject {subject}.\")\n", " return\n", " \n", " # Step 3: Adaptive quiz loop\n", " difficulty_order = ['Easy', 'Medium', 'Hard']\n", " current_index = difficulty_order.index(difficulty)\n", " total_correct = 0\n", " \n", " for i in range(n):\n", " pool = subject_questions[subject_questions['difficulty'] == difficulty_order[current_index]]\n", " if pool.empty:\n", " print(\" No questions available for this difficulty.\")\n", " break\n", " \n", " question = pool.sample(1).iloc[0] # pick random question\n", " print(f\"Q{i+1}: {question['Question']}\")\n", " print(f\"Options: {question['Options']}\")\n", " \n", " # Ask for student answer and validate\n", " valid_options = ['A','B','C','D']\n", " while True:\n", " student_answer = input(\"Your answer (A/B/C/D): \").strip().upper()\n", " if student_answer in valid_options:\n", " break\n", " print(\" Invalid option. Please enter A, B, C, or D.\")\n", " \n", " # Check correctness\n", " correct = student_answer == question['Answer'].strip().upper()\n", " if correct:\n", " print(\" Correct!\\n\")\n", " total_correct += 1\n", " current_index = min(current_index + 1, 2) # move harder\n", " else:\n", " print(f\" Wrong! Correct answer: {question['Answer']}\\n\")\n", " current_index = max(current_index - 1, 0) # move easier\n", " \n", " # Step 4: Compute quiz score\n", " quiz_score = total_correct / n\n", " print(f\" Quiz Completed! Score: {quiz_score*100:.1f}%\")\n", " \n", " # Step 5: Final likelihood to pass using Option 2\n", " base_prob = model.predict_proba([student_features])[0,1] # original 11-feature model\n", " final_prob = 0.6 * base_prob + 0.4 * quiz_score\n", " \n", " if final_prob >= 0.7:\n", " result = \"Likely to Pass\"\n", " elif final_prob >= 0.4:\n", " result = \"At Risk\"\n", " else:\n", " result = \"Likely to Fail\"\n", " \n", " print(f\"\\n Final Prediction: {result} (Score: {final_prob:.2f})\")\n" ] }, { "cell_type": "code", "execution_count": 62, "id": "4eadc48b-36c7-4353-b340-e945e4b43ca7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== Enter your study features for English ===\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "First C.A test (0-20): 3\n", "Second C.A test (0-20): 3\n", "Third C.A test (0-20): 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", " Starting difficulty based on past performance: Easy\n", "\n", "Q1: Choose the correct tense: They ___ to Lagos every weekend.\n", "Options: A. goes | B. go | C. going | D. gone\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Correct!\n", "\n", "Q2: 'Once in a blue moon' means\n", "Options: A. very often | B. rarely | C. never | D. always\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Correct!\n", "\n", "Q3: 'Judge' begins with the sound\n", "Options: A. /dʒ/ | B. /ʃ/ | C. /tʃ/ | D. /z/\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Correct!\n", "\n", " Quiz Completed! Score: 100.0%\n", "\n", " Final Prediction: At Risk (Score: 0.40)\n" ] } ], "source": [ "\n", "# Now run the adaptive quiz\n", "run_adaptive_quiz(\"English\", model, df, n=3)" ] }, { "cell_type": "code", "execution_count": 70, "id": "d03a6096-dfcf-4ed2-99f3-15db2452a2da", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import joblib\n", "\n", "# --- Load trained G1/G2/G3 model ---\n", "model4 = joblib.load(\"model4.pkl\") # make sure path is correct\n", "\n", "# --- Adaptive cluster selector ---\n", "def pick_next_cluster(last_cluster, last_correct):\n", " if last_correct:\n", " next_cluster = min(last_cluster + 1, df[\"Cluster\"].max())\n", " else:\n", " next_cluster = max(last_cluster - 1, 0)\n", " return next_cluster\n", "\n", "# --- Adaptive Quiz with Likely WAEC Grade ---\n", "def run_adaptive_quiz(subject, df, n=3):\n", " \n", " def get_valid_input(prompt, min_val=None, max_val=None):\n", " while True:\n", " try:\n", " val = int(input(prompt))\n", " if (min_val is not None and val < min_val) or (max_val is not None and val > max_val):\n", " print(f\"⚠️ Enter a value between {min_val} and {max_val}\")\n", " continue\n", " return val\n", " except ValueError:\n", " print(\"⚠️ Invalid input, enter a number\")\n", " \n", " # Step 1: Collect G1/G2/G3\n", " print(f\"\\n=== Enter your past scores for {subject} ===\")\n", " G1 = get_valid_input(\"First C.A test (0-20): \", 0, 20)\n", " G2 = get_valid_input(\"Second C.A test (0-20): \", 0, 20)\n", " G3 = get_valid_input(\"Third C.A test (0-20): \", 0, 20)\n", " \n", " student_g123 = [[G1, G2, G3]]\n", " \n", " # Step 2: Predict starting cluster from model4\n", " pred_grade = model4.predict(student_g123)[0]\n", " grade_to_cluster = {'F':0, 'D':1, 'C':2, 'B':3, 'A':4}\n", " current_cluster = grade_to_cluster.get(pred_grade, 2) # default medium\n", " \n", " print(f\"\\n📊 Predicted starting grade: {pred_grade}, starting cluster: {current_cluster}\")\n", " \n", " # Step 3: Filter questions by subject\n", " subject_questions = df[df['Subject'] == subject]\n", " if subject_questions.empty:\n", " print(f\" No questions available for {subject}\")\n", " return\n", " \n", " # Step 4: Adaptive quiz loop\n", " total_correct = 0\n", " for i in range(n):\n", " pool = subject_questions[subject_questions['Cluster'] == current_cluster]\n", " if pool.empty:\n", " print(\" No questions available for this cluster\")\n", " break\n", " \n", " question = pool.sample(1).iloc[0]\n", " print(f\"\\nQ{i+1}: {question['Question']}\")\n", " print(f\"Options: {question['Options']}\")\n", " \n", " valid_options = ['A','B','C','D']\n", " while True:\n", " ans = input(\"Your answer (A/B/C/D): \").strip().upper()\n", " if ans in valid_options:\n", " break\n", " print(\"Invalid input, enter A/B/C/D\")\n", " \n", " correct = ans == question['Answer'].strip().upper()\n", " if correct:\n", " print(\" Correct!\")\n", " total_correct += 1\n", " else:\n", " print(f\"❌ Wrong! Correct answer: {question['Answer']}\")\n", " \n", " # Step 5: Update cluster\n", " current_cluster = pick_next_cluster(current_cluster, correct)\n", " \n", " # Step 6: Compute quiz score\n", " quiz_score = total_correct / n\n", " print(f\"\\n📊 Quiz Completed! Score: {quiz_score*100:.1f}%\")\n", " \n", " # Step 7: Estimate WAEC grade\n", " # We can combine model4 prediction and quiz performance\n", " # Map quiz_score to a simple numeric scale for blending\n", " score_to_numeric = quiz_score * 20 # convert 0-1 to 0-20 scale\n", " avg_g123 = (G1 + G2 + G3) / 3\n", " combined_score = 0.6 * avg_g123 + 0.4 * score_to_numeric\n", " \n", " # Map combined_score to WAEC grade\n", " if combined_score >= 16:\n", " likely_grade = 'A'\n", " elif combined_score >= 13:\n", " likely_grade = 'B'\n", " elif combined_score >= 10:\n", " likely_grade = 'C'\n", " elif combined_score >= 7:\n", " likely_grade = 'D'\n", " else:\n", " likely_grade = 'F'\n", " \n", " print(f\"🎯 Likely WAEC grade based on quiz & past scores: {likely_grade}\")\n" ] }, { "cell_type": "code", "execution_count": 71, "id": "f83bf8fd-0f44-49b5-b426-82d03380a9ed", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== Enter your past scores for English ===\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "First C.A test (0-20): 13\n", "Second C.A test (0-20): 13\n", "Third C.A test (0-20): 13\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Predicted starting grade: 1, starting cluster: 2\n", "\n", "Q1: 'Under the weather' means\n", "Options: A. travelling | B. feeling unwell | C. outdoors | D. excited\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): A\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q2: The minimal pair is\n", "Options: A. ship/sheep | B. cat/dog | C. man/men | D. thin/think\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): B\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: A\n", "\n", "Q3: If the author argues that education reduces poverty, the main idea is that\n", "Options: A. schools are expensive | B. education has no value | C. education alleviates poverty | D. teachers earn more\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): C\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Correct!\n", "\n", "Q4: A paragraph that starts with 'First, Next, Finally' is organized\n", "Options: A. spatially | B. chronologically | C. randomly | D. point-by-point\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): C\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "📊 Quiz Completed! Score: 25.0%\n", "🎯 Likely WAEC grade based on quiz & past scores: D\n" ] } ], "source": [ "#run_adaptive_quiz(\"Mathematics\", df, n=3)\n", "run_adaptive_quiz(\"English\", df, n=4)\n" ] }, { "cell_type": "raw", "id": "e65c59a7-631e-4edd-949f-da5efa69cd30", "metadata": {}, "source": [ "import pandas as pd\n", "import joblib\n", "\n", "# --- Load trained G1/G2/G3 model ---\n", "model4 = joblib.load(\"model4.pkl\") # ensure correct path\n", "\n", "# --- Adaptive cluster selector ---\n", "def pick_next_cluster(last_cluster, last_correct, max_cluster):\n", " if last_correct:\n", " return min(last_cluster + 1, max_cluster)\n", " else:\n", " return max(last_cluster - 1, 0)\n", "\n", "# --- Map cluster to difficulty ---\n", "def cluster_to_difficulty(cluster):\n", " if cluster <= 1:\n", " return \"Easy\"\n", " elif cluster <= 3:\n", " return \"Medium\"\n", " else:\n", " return \"Hard\"\n", "\n", "# --- Adaptive Quiz using G1/G2/G3 to start, quiz score for Pass/Fail ---\n", "def run_adaptive_quiz(subject, df_questions, n=3):\n", " \n", " def get_valid_input(prompt, min_val=0, max_val=20):\n", " while True:\n", " try:\n", " val = int(input(prompt))\n", " if val < min_val or val > max_val:\n", " print(f\"⚠️ Enter a value between {min_val} and {max_val}\")\n", " continue\n", " return val\n", " except ValueError:\n", " print(\"⚠️ Invalid input, enter a number\")\n", " \n", " # Step 1: Collect G1/G2/G3\n", " print(f\"\\n=== Enter your past scores for {subject} ===\")\n", " G1 = get_valid_input(\"First C.A test (0-20): \")\n", " G2 = get_valid_input(\"Second C.A test (0-20): \")\n", " G3 = get_valid_input(\"Third C.A test (0-20): \")\n", " \n", " # Step 2: Predict starting cluster from G1/G2/G3\n", " student_g123 = [[G1, G2, G3]]\n", " pred_grade = model4.predict(student_g123)[0]\n", " grade_to_cluster = {'F':0, 'D':1, 'C':2, 'B':3, 'A':4}\n", " current_cluster = grade_to_cluster.get(pred_grade, 2) # default medium\n", " \n", " print(f\"\\n📊 Predicted starting grade: {pred_grade}, starting cluster: {current_cluster} ({cluster_to_difficulty(current_cluster)})\")\n", " \n", " # Step 3: Filter questions by subject\n", " subject_questions = df_questions[df_questions['Subject'] == subject]\n", " if subject_questions.empty:\n", " print(f\"⚠️ No questions available for {subject}\")\n", " return\n", " \n", " max_cluster = subject_questions['Cluster'].max()\n", " \n", " # Step 4: Adaptive quiz loop\n", " total_correct = 0\n", " for i in range(n):\n", " pool = subject_questions[subject_questions['Cluster'] == current_cluster]\n", " if pool.empty:\n", " print(\"⚠️ No questions available for this cluster\")\n", " break\n", " \n", " question = pool.sample(1).iloc[0]\n", " difficulty = cluster_to_difficulty(current_cluster)\n", " print(f\"\\nQ{i+1} ({difficulty}): {question['Question']}\")\n", " print(f\"Options: {question['Options']}\")\n", " \n", " valid_options = ['A','B','C','D']\n", " while True:\n", " ans = input(\"Your answer (A/B/C/D): \").strip().upper()\n", " if ans in valid_options:\n", " break\n", " print(\"⚠️ Invalid input, enter A/B/C/D\")\n", " \n", " correct = ans == question['Answer'].strip().upper()\n", " if correct:\n", " print(\"✅ Correct!\")\n", " total_correct += 1\n", " else:\n", " print(f\"❌ Wrong! Correct answer: {question['Answer']}\")\n", " \n", " # Step 5: Update cluster adaptively\n", " current_cluster = pick_next_cluster(current_cluster, correct, max_cluster)\n", " \n", " # Step 6: Compute quiz score\n", " quiz_score = total_correct / n\n", " print(f\"\\n📊 Quiz Completed! Score: {quiz_score*100:.1f}%\")\n", " \n", " # Step 7: Predict Likely Pass / Fail based solely on quiz score\n", " if quiz_score >= 0.5: # threshold can be adjusted\n", " result = \"Likely to Pass\"\n", " else:\n", " result = \"At Risk / Likely to Fail\"\n", " \n", " print(f\"🎯 Based solely on quiz performance: {result}\")\n" ] }, { "cell_type": "code", "execution_count": 75, "id": "c62f3bec-5922-4431-ab53-e3509cd3a6c5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== Enter your past scores for English ===\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "First C.A test (0-20): 20\n", "Second C.A test (0-20): 20\n", "Third C.A test (0-20): 20\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Predicted starting grade: 0, starting cluster: 2 (Medium)\n", "\n", "Q1 (Medium): 'Break the ice' means to\n", "Options: A. start a conversation | B. freeze water | C. fight | D. sing\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: A\n", "\n", "Q2 (Easy): A paragraph that starts with 'First, Next, Finally' is organized\n", "Options: A. spatially | B. chronologically | C. randomly | D. point-by-point\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q3 (Easy): A passage states: 'The policy had unintended effects.' This implies the effects were\n", "Options: A. deliberate | B. accidental | C. beneficial | D. planned\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q4 (Easy): An author's bias in a passage refers to\n", "Options: A. the setting | B. the point of view/slant | C. the grammar | D. the length\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "📊 Quiz Completed! Score: 0.0%\n", "🎯 Based solely on quiz performance: At Risk / Likely to Fail\n" ] } ], "source": [ "run_adaptive_quiz(\"Mathematics\", df, n=4)\n" ] }, { "cell_type": "code", "execution_count": 76, "id": "48488bb0-9ed7-4a67-8d6e-74b2dcc10182", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import joblib\n", "\n", "# --- Load trained G1/G2/G3 model ---\n", "model4 = joblib.load(\"model4.pkl\") # ensure correct path\n", "\n", "# --- Adaptive cluster selector ---\n", "def pick_next_cluster(last_cluster, last_correct, max_cluster):\n", " if last_correct:\n", " return min(last_cluster + 1, max_cluster)\n", " else:\n", " return max(last_cluster - 1, 0)\n", "\n", "# --- Map cluster to difficulty ---\n", "def cluster_to_difficulty(cluster):\n", " if cluster <= 1:\n", " return \"Easy\"\n", " elif cluster <= 3:\n", " return \"Medium\"\n", " else:\n", " return \"Hard\"\n", "\n", "# --- Fully Adaptive Quiz ---\n", "def run_adaptive_quiz(subject, df_questions):\n", " \n", " def get_valid_input(prompt, min_val=0, max_val=20):\n", " while True:\n", " try:\n", " val = int(input(prompt))\n", " if val < min_val or val > max_val:\n", " print(f\"⚠️ Enter a value between {min_val} and {max_val}\")\n", " continue\n", " return val\n", " except ValueError:\n", " print(\"⚠️ Invalid input, enter a number\")\n", " \n", " # Step 1: Collect G1/G2/G3\n", " print(f\"\\n=== Enter your past scores for {subject} ===\")\n", " G1 = get_valid_input(\"First C.A test (0-20): \")\n", " G2 = get_valid_input(\"Second C.A test (0-20): \")\n", " G3 = get_valid_input(\"Third C.A test (0-20): \")\n", " \n", " # Step 2: Predict starting cluster from G1/G2/G3\n", " student_g123 = [[G1, G2, G3]]\n", " pred_grade = model4.predict(student_g123)[0]\n", " grade_to_cluster = {'F':0, 'D':1, 'C':2, 'B':3, 'A':4}\n", " current_cluster = grade_to_cluster.get(pred_grade, 2)\n", " \n", " print(f\"\\n📊 Predicted starting grade: {pred_grade}, starting cluster: {current_cluster} ({cluster_to_difficulty(current_cluster)})\")\n", " \n", " # Step 3: Filter questions by subject\n", " subject_questions = df_questions[df_questions['Subject'] == subject]\n", " if subject_questions.empty:\n", " print(f\"⚠️ No questions available for {subject}\")\n", " return\n", " \n", " max_cluster = subject_questions['Cluster'].max()\n", " total_questions = 0\n", " total_correct = 0\n", " \n", " # Step 4: Continuous adaptive quiz\n", " while True:\n", " pool = subject_questions[subject_questions['Cluster'] == current_cluster]\n", " if pool.empty:\n", " print(\"⚠️ No questions available for this cluster\")\n", " break\n", " \n", " question = pool.sample(1).iloc[0]\n", " difficulty = cluster_to_difficulty(current_cluster)\n", " print(f\"\\nQ{total_questions+1} ({difficulty}): {question['Question']}\")\n", " print(f\"Options: {question['Options']}\")\n", " \n", " valid_options = ['A','B','C','D']\n", " while True:\n", " ans = input(\"Your answer (A/B/C/D or Q to quit): \").strip().upper()\n", " if ans == 'Q':\n", " print(\"🛑 Quiz ended by user.\")\n", " break\n", " if ans in valid_options:\n", " break\n", " print(\"⚠️ Invalid input, enter A/B/C/D or Q to quit\")\n", " if ans == 'Q':\n", " break\n", " \n", " correct = ans == question['Answer'].strip().upper()\n", " if correct:\n", " print(\"✅ Correct!\")\n", " total_correct += 1\n", " else:\n", " print(f\"❌ Wrong! Correct answer: {question['Answer']}\")\n", " \n", " total_questions += 1\n", " current_cluster = pick_next_cluster(current_cluster, correct, max_cluster)\n", " \n", " if total_questions == 0:\n", " print(\"No questions attempted.\")\n", " return\n", " \n", " # Step 5: Compute quiz score\n", " quiz_score = total_correct / total_questions\n", " print(f\"\\n📊 Quiz Completed! Score: {quiz_score*100:.1f}% ({total_correct}/{total_questions})\")\n", " \n", " # Step 6: Predict Likely Pass / Fail based on quiz score only\n", " if quiz_score >= 0.5:\n", " result = \"Likely to Pass\"\n", " else:\n", " result = \"At Risk / Likely to Fail\"\n", " \n", " print(f\"🎯 Based solely on quiz performance: {result}\")\n" ] }, { "cell_type": "code", "execution_count": 79, "id": "15aae68c-36c6-4cae-bc49-7c80e561fc93", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== Enter your past scores for English ===\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "First C.A test (0-20): 3\n", "Second C.A test (0-20): 3\n", "Third C.A test (0-20): 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "📊 Predicted starting grade: 4, starting cluster: 2 (Medium)\n", "\n", "Q1 (Medium): 'Once in a blue moon' means\n", "Options: A. very often | B. rarely | C. never | D. always\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q2 (Easy): Identify the error: He did not went there yesterday.\n", "Options: A. did not went | B. went there | C. yesterday | D. He\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q3 (Medium): Choose the correct idiom: He kicked the bucket means he\n", "Options: A. broke a bucket | B. became angry | C. died | D. lost money\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: C\n", "\n", "Q4 (Easy): If a paragraph ends with 'Therefore', the next sentence will most likely present\n", "Options: A. an example | B. a conclusion | C. a definition | D. a story\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q5 (Easy): Primary stress in 'education' falls on\n", "Options: A. first | B. second | C. third | D. fourth\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: C\n", "\n", "Q6 (Easy): An author's bias in a passage refers to\n", "Options: A. the setting | B. the point of view/slant | C. the grammar | D. the length\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q7 (Easy): Identify the error: He did not went there yesterday.\n", "Options: A. did not went | B. went there | C. yesterday | D. He\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: A\n", "\n", "Q8 (Easy): A passage states: 'The policy had unintended effects.' This implies the effects were\n", "Options: A. deliberate | B. accidental | C. beneficial | D. planned\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q9 (Easy): Fill the gap: He has lived here ___ 2019.\n", "Options: A. since | B. for | C. from | D. in\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: A\n", "\n", "Q10 (Easy): If the author argues that education reduces poverty, the main idea is that\n", "Options: A. schools are expensive | B. education has no value | C. education alleviates poverty | D. teachers earn more\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: C\n", "\n", "Q11 (Easy): Primary stress in 'education' falls on\n", "Options: A. first | B. second | C. third | D. fourth\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: C\n", "\n", "Q12 (Easy): A 'counter-argument' in a passage is\n", "Options: A. the thesis | B. an opposing point | C. a summary | D. a definition\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q13 (Easy): An author's bias in a passage refers to\n", "Options: A. the setting | B. the point of view/slant | C. the grammar | D. the length\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q14 (Easy): A passage states: 'The policy had unintended effects.' This implies the effects were\n", "Options: A. deliberate | B. accidental | C. beneficial | D. planned\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): b\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q15 (Easy): Fill the gap: He has lived here ___ 2019.\n", "Options: A. since | B. for | C. from | D. in\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: A\n", "\n", "Q16 (Easy): Primary stress in 'education' falls on\n", "Options: A. first | B. second | C. third | D. fourth\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q17 (Easy): The minimal pair is\n", "Options: A. ship/sheep | B. cat/dog | C. man/men | D. thin/think\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Correct!\n", "\n", "Q18 (Medium): 'On cloud nine' means\n", "Options: A. very sad | B. very happy | C. very tired | D. very angry\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q19 (Easy): Choose the correct option: Neither James nor his friends ___ going today.\n", "Options: A. is | B. are | C. be | D. were\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q20 (Easy): 'The tone of the passage is satirical' means it is\n", "Options: A. serious | B. mocking | C. boring | D. neutral\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): a\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "❌ Wrong! Correct answer: B\n", "\n", "Q21 (Easy): Primary stress in 'education' falls on\n", "Options: A. first | B. second | C. third | D. fourth\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Your answer (A/B/C/D or Q to quit): Q\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "🛑 Quiz ended by user.\n", "\n", "📊 Quiz Completed! Score: 30.0% (6/20)\n", "🎯 Based solely on quiz performance: At Risk / Likely to Fail\n" ] } ], "source": [ "run_adaptive_quiz(\"English\", df)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "dc258c19-4aaa-49db-8285-74a9e4be0792", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.2" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }