Files
breast-cancer-detection/knn.ipynb
2025-06-04 14:22:33 +02:00

328 lines
80 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 21,
"id": "4e6f6cb1",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.metrics import accuracy_score, f1_score, recall_score, classification_report, confusion_matrix, roc_curve\n",
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "4dd5223b",
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "c1ab7ec9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset shape: (116, 10)\n",
" Age BMI Glucose Insulin HOMA Leptin Adiponectin Resistin \\\n",
"0 48 23.500000 70 2.707 0.467409 8.8071 9.702400 7.99585 \n",
"1 83 20.690495 92 3.115 0.706897 8.8438 5.429285 4.06405 \n",
"2 82 23.124670 91 4.498 1.009651 17.9393 22.432040 9.27715 \n",
"3 68 21.367521 77 3.226 0.612725 9.8827 7.169560 12.76600 \n",
"4 86 21.111111 92 3.549 0.805386 6.6994 4.819240 10.57635 \n",
"\n",
" MCP.1 Classification \n",
"0 417.114 1 \n",
"1 468.786 1 \n",
"2 554.697 1 \n",
"3 928.220 1 \n",
"4 773.920 1 \n"
]
}
],
"source": [
"# fetch dataset \n",
"data = pd.read_csv(\"dataR2.csv\")\n",
" \n",
"# data (as pandas dataframes) \n",
"X = data.drop(columns='Classification')\n",
"y = data['Classification'].map({2: 0, 1: 1}) # Map 2 to 0 and 1 to 1, 0 = pacient healthy, 1 = pacient sick\n",
" \n",
"print(\"Dataset shape:\", data.shape)\n",
"print(data.head())"
]
},
{
"cell_type": "markdown",
"id": "a1004c28",
"metadata": {},
"source": [
"# K-NN classifier "
]
},
{
"cell_type": "markdown",
"id": "082c143b",
"metadata": {},
"source": [
"### 1) No curse of dimention "
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "754dce9b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of samples: 116\n",
"Number of features: 9\n"
]
}
],
"source": [
"print(\"Number of samples:\", X.shape[0])\n",
"print(\"Number of features:\", X.shape[1])"
]
},
{
"cell_type": "markdown",
"id": "01bb817a",
"metadata": {},
"source": [
"Then d is small enough to insure that we are not in the curse of dimention"
]
},
{
"cell_type": "markdown",
"id": "9f74eaee",
"metadata": {},
"source": [
"### 2) train-test split and rescaling of the feature "
]
},
{
"cell_type": "markdown",
"id": "5e67beb4",
"metadata": {},
"source": [
"Feature scaling is important for k-NN, as it is a distance-based algorithm and is sensitive to the scale of the features. This means that if some data are much farther from others due to unscaled features, it can damage the quality of the predictions."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "70281897",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # train/test split with 70% training and 30% testing\n",
"\n",
"\n",
"# Feature scaling\n",
"scaler = StandardScaler()\n",
"\n",
"X_train_scaled = pd.DataFrame(\n",
" scaler.fit_transform(X_train),\n",
" columns=X_train.columns,\n",
" index=X_train.index\n",
")\n",
"\n",
"X_test_scaled = pd.DataFrame(\n",
" scaler.transform(X_test),\n",
" columns=X_test.columns,\n",
" index=X_test.index\n",
")"
]
},
{
"cell_type": "markdown",
"id": "444bcf0f",
"metadata": {},
"source": [
"### 3) Cross validation to find the best k nearest neighbor"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "16d2efe7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The best k for k-NN is k = 5\n"
]
}
],
"source": [
"k_scores = []\n",
"K_list = np.arange(1, X.shape[0] // 4 ) # concidering 1/4 of the samples as neaighbors is large enough for k-NN to don't overfit\n",
"\n",
"\n",
"for k in K_list:\n",
" knn = KNeighborsClassifier(n_neighbors=k)\n",
" score = cross_val_score(knn, X_train_scaled, y_train, cv=5, scoring='f1')\n",
" k_scores.append(score.mean())\n",
"\n",
"k_scores = np.array(k_scores)\n",
"\n",
"k_optimal = K_list[np.argmax(k_scores)]\n",
"print(\"The best k for k-NN is k =\", k_optimal)"
]
},
{
"cell_type": "markdown",
"id": "5b2f376f",
"metadata": {},
"source": [
"### 4) Model performance "
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "064a5aa7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.8\n",
"F1 Score: 0.798014888337469\n",
"Recall: 0.7058823529411765\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 0.76 0.89 0.82 18\n",
" 1 0.86 0.71 0.77 17\n",
"\n",
" accuracy 0.80 35\n",
" macro avg 0.81 0.80 0.80 35\n",
"weighted avg 0.81 0.80 0.80 35\n",
"\n"
]
},
{
"data": {
"image/png": "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nDhRlSpVkre3t2JjYzVq1Cg1bNjQvn7Lli1q27atKlSoIF9fX0VGRmr79u329cHBwZKkrl27ymaz2R/Hx8fb97NixQq5u7vr3LlzDsceOnSoHnnkEfvj1NRUtWjRQh4eHgoMDFRcXBwfhYadp4er6tetpvp1q0mSgquVV/261exnxKYmrdJT7Rqrf9emqhVYQYN6tlSHlvfpvU/WleTYAIrAsBcG6+P5Hypp3nx5eXvr5MmTOnnypC5fvlzSo8EwJX4pMykpSZ6entq8ebMmT56s8ePHa+XKlZKk7t2769SpU/rqq6+0bds2NW7cWK1bt9aZM2ckScnJyZo0aZL+/ve/a9u2bapRo4beffddh/1fuHBBMTExSk1N1TfffKM6deqoQ4cOunDhgqTr4SZJc+bM0YkTJ+yPf61169by8/PTwoUL7ctycnK0YMECRUdHS5IOHjyo9u3b68knn9SuXbu0YMECpaamasiQIfm+9qysLJ0/f97hB3evxuFB2rxgtDYvGC1JmjziSW1eMFpjnu8oSfpi7S69MOljvdivjbZ+8jf169pUT7/8gTbuOFSSYwMoAu/NelcZGRl6tHWUagZWtf98+smtv9cQpZfNsiyrpA4eFRWlnJwcrV+/3r6sSZMmeuSRR9SpUyd17NhRp06dkpubm319SEiIXnnlFT377LN6+OGH9cADD+jtt9+2r2/evLkyMzPzvWk/NzdXfn5+mj9/vjp16iTp+j1mixYtUpcuXezb3Xzz/7Bhw7R79277fWcrVqzQE088oZMnT8rPz0+xsbFydnbWrFmz7PtITU1VZGSkLl68KHd39zyzxMfHa9y4cXmWu9UbKJuz6++/gQDuaGe3vP37GwG4K5w/f16Vy/sqIyNDPj4++W5X4mfM6td3/J6mqlWr6tSpU9q5c6cyMzNVvnx5+/1eXl5eSk9P18GDByVJaWlpatKkicPzb378008/aeDAgapTp458fX3l4+OjzMxMHT16tFBzRkdHKyUlRcePH5d0/Wxdx44d5efnJ0nauXOnEhMTHWZt166dcnNzlZ6efst9jh49WhkZGfafY8eOFWomAABwdynxm//LlCnj8Nhmsyk3N1eZmZmqWrWqUlJS8jznRgwVRExMjE6fPq3p06crKChIbm5uioiI0NWrVws154MPPqjatWvr448/1vPPP69FixYpMTHR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",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAIjCAYAAAAQgZNYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWcElEQVR4nOzdd1iT198G8DusALJUwIEobpyoqNRtnR1arVVxj1qtVju01q1oh6PWUVutrdZSW2et+rPVWkdrrbNWxIlb60ZxsEcg5/3jvAQiQQkmeZJwf67LC3J4kucLJ8Gbk/OcoxJCCBARERER2SAHpQsgIiIiIioshlkiIiIislkMs0RERERksxhmiYiIiMhmMcwSERERkc1imCUiIiIim8UwS0REREQ2i2GWiIiIiGwWwywRERER2SyGWSILCQoKwqBBg5Quo8hp3bo1WrdurXQZTzV9+nSoVCrExcUpXYrVUalUmD59ukke6+rVq1CpVIiMjDTJ4wHAP//8AxcXF/z3338me0xT69WrF3r27Kl0GURmwTBLdiEyMhIqlUr3z8nJCQEBARg0aBBu3rypdHlWLTk5GR999BHq1q0Ld3d3eHt7o0WLFli5ciVsZbfrM2fOYPr06bh69arSpeSRlZWF7777Dq1bt0aJEiWgVqsRFBSEwYMH499//1W6PJNYvXo1Fi5cqHQZeixZ0+TJk9G7d29UqFBB19a6dWu930lubm6oW7cuFi5cCK1Wa/Bx7t+/jw8++ADVq1eHq6srSpQogY4dO+LXX3/N99wJCQmYMWMGQkJC4OHhATc3N9SuXRvjx4/HrVu3dMeNHz8eP//8M44fP17g76soPHfJPqiErfxvRfQEkZGRGDx4MD788ENUrFgRaWlpOHToECIjIxEUFIRTp07B1dVV0RrT09Ph4OAAZ2dnRevILTY2Fm3btkVMTAx69eqFVq1aIS0tDT///DP27t2L8PBwrFq1Co6OjkqX+kQbNmxAjx498Oeff+YZhc3IyAAAuLi4WLyu1NRUdOvWDdu3b0fLli3RuXNnlChRAlevXsX69etx/vx5XLt2DeXKlcP06dMxY8YM3Lt3D76+vhav9Vl06tQJp06dMtsfE2lpaXBycoKTk9Mz1ySEQHp6OpydnU3yvI6Ojkb9+vVx4MABNGnSRNfeunVrXLp0CbNmzQIAxMXFYfXq1Thy5AgmTZqETz75RO9xzp07h7Zt2+LevXsYPHgwGjZsiEePHmHVqlWIjo7G2LFjMXfuXL37XL58Ge3atcO1a9fQo0cPNG/eHC4uLjhx4gTWrFmDEiVK4Pz587rjw8LCUL16daxcufKp35cxz10ixQkiO/Ddd98JAOLIkSN67ePHjxcAxLp16xSqTFmpqakiKysr36937NhRODg4iP/97395vjZ27FgBQMyePducJRqUlJRk1PE//fSTACD+/PNP8xRUSCNHjhQAxIIFC/J8LTMzU8ydO1dcv35dCCFERESEACDu3btntnq0Wq1ISUkx+eO+/PLLokKFCiZ9zKysLJGamlro+5ujJkPeeecdUb58eaHVavXaW7VqJWrVqqXXlpqaKipUqCA8PT1FZmamrj0jI0PUrl1buLu7i0OHDundJzMzU4SHhwsAYu3atbp2jUYjQkJChLu7u/j777/z1BUfHy8mTZqk1/bZZ5+JYsWKicTExKd+X8Y8d5/Fs/YzkRBCMMySXcgvzP76668CgJg5c6Zee0xMjHjttddE8eLFhVqtFqGhoQYD3cOHD8V7770nKlSoIFxcXERAQIDo37+/XuBIS0sT06ZNE5UrVxYuLi6iXLly4oMPPhBpaWl6j1WhQgUxcOBAIYQQR44cEQBEZGRknnNu375dABC//PKLru3GjRti8ODBwt/fX7i4uIiaNWuKb7/9Vu9+f/75pwAg1qxZIyZPnizKli0rVCqVePjwocGf2cGDBwUA8frrrxv8ukajEVWrVhXFixfXBaArV64IAGLu3Lli/vz5onz58sLV1VW0bNlSnDx5Ms9jFOTnnN13e/bsESNGjBB+fn7Cx8dHCCHE1atXxYgRI0S1atWEq6urKFGihOjevbu4cuVKnvs//i872LZq1Uq0atUqz89p3bp14uOPPxYBAQFCrVaLNm3aiAsXLuT5Hr788ktRsWJF4erqKho1aiT27t2b5zENuX79unBychLt27d/4nHZssPshQsXxMCBA4W3t7fw8vISgwYNEsnJyXrHrlixQjz//PPCz89PuLi4iBo1aoglS5bkecwKFSqIl19+WWzfvl2EhoYKtVqtCycFfQwhhNi2bZto2bKl8PDwEJ6enqJhw4Zi1apVQgj58338Z587RBb09QFAjBw5Uvz444+iZs2awsnJSWzatEn3tYiICN2xCQkJ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4wNUqaJ0NVQkxMcDL70kP1atKqcW1KundFVERFQEMMzaocOH5cfGjbmEJ1mItzfw+efAjh1ydy9PT6UrIiKiIoJh1g5xvixZxN69csmtpk3l7YEDgQED+BcUERFZFOfM2iGGWTKrrCzg44+B558HevYE4uJyvsYgS0REFsaRWTuTkADExMjPGWbJ5GJjgX79gF275O127QA3N2VrIiKiIo1h1s4cPSqX+axQAShVSulqyK788QfQp48MtO7uwJIlcmoBERGRgjjNwM5wigGZnFYrd/Fq104G2dq15dqxDLJERGQFGGbtDMMsmZxKBZw5I4f833hDLpdRo4bSVREREQHgNAO7wzBLJqPVAg4OMswuXw6EhwPduytdFRERkR6OzNqRW7eAGzdk/mjQQOlqyGZlZgITJwK9esnRWECuI8sgS0REVogjs3bkyBH5sVYtwMND2VrIRl2/DvTuDezfL2+PHAm0aqVsTURERE/AkVk7wikG9Ey2bpVb0O7fD3h5yS1pGWSJiMjKMczaEYZZKhSNBvjgA6BTJ+DBAyA0FIiKAnr0ULoyIiKip+I0Azuh1eZMM2CYJaP07g38/LP8/J13gE8/BdRqZWsiIiIqII7M2onz54H4eLkZU61aSldDNuXddwFfX2DTJuDzzxlkiYjIpnBk1k5kTzFo0ABwdla2FrJy6elAdDQQFiZvt2gBXL0KFCumZFVERESFwpFZO5EdZrPzCZFBly8DzZoBbdoAMTE57QyyRERkoxhm7QQv/qKn2rABqF8fOHoUcHUFbt9WuiIiIqJnxjBrB7LfNQYYZsmAtDS5XmyPHkBCAtC0qXzCtGmjdGVERETPjGHWDhw/LldX8vUFgoKUroasyoULQJMmwJIl8vaECcCePUBgoKJlERERmQovALMDuacYqFTK1kJW5scf5Sisry/www/ACy8oXREREZFJMczaAc6XpXxNnQokJgLvvw8EBChdDRERkclxmoEdYJglnbNngYED5URqAHByAubPZ5AlIiK7xZFZG/foEXDunPy8USNFSyGlrVwJjBgBpKTIObEff6x0RURERGbHkVkb9++/8mOlSnJaJBVBycnA4MFyRDYlBWjbFhg1SumqiIiILIJh1sZxikERd/q07PzISMDBAfjwQ+D334HSpZWujIiIyCI4zcDGMcwWYf/7H9C7N5CaCpQpA6xZ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",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"knn = KNeighborsClassifier(n_neighbors=k_optimal) # using the best k founded earlier\n",
"knn.fit(X_train_scaled, y_train)\n",
"\n",
"y_pred = knn.predict(X_test_scaled)\n",
"\n",
"acc = accuracy_score(y_test, y_pred)\n",
"f1 = f1_score(y_test, y_pred, average='weighted')\n",
"rec = recall_score(y_test, y_pred)\n",
"class_report = classification_report(y_test, y_pred)\n",
"\n",
"# Display differents performance of the model\n",
"print(\"Accuracy:\", acc)\n",
"print(\"F1 Score:\", f1)\n",
"print(\"Recall:\", rec)\n",
"print(\"Classification Report:\\n\", class_report)\n",
"\n",
"# Plotting the confusion matrix\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"plt.figure(figsize=(8, 6))\n",
"plt.imshow(cm, interpolation='nearest', cmap=plt.cm.Blues)\n",
"plt.title('Confusion Matrix')\n",
"for i in range(cm.shape[0]):\n",
" for j in range(cm.shape[1]):\n",
" plt.text(j, i, cm[i, j], horizontalalignment='center', color='white' if cm[i, j] > cm.max() / 2 else 'black')\n",
"plt.xticks(np.arange(len(np.unique(y))),labels = [\"negative\", \"positive\"])\n",
"plt.yticks(np.arange(len(np.unique(y))),labels = [\"negative\", \"positive\"])\n",
"plt.xlabel('Predicted label')\n",
"plt.ylabel('True label')\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"# Plotting ROC curve\n",
"fpr, tpr, thresholds = roc_curve(y_test, knn.predict_proba(X_test_scaled)[:, 1])\n",
"plt.figure(figsize=(8, 6))\n",
"plt.plot(fpr, tpr, color='blue', label='ROC curve (area = {:.2f})'.format(f1))\n",
"plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n",
"plt.xlim([-0.05, 1.05])\n",
"plt.ylim([-0.05, 1.05])\n",
"plt.xlabel('False Positive Rate')\n",
"plt.ylabel('True Positive Rate')\n",
"plt.title('Receiver Operating Characteristic (ROC) Curve')\n",
"plt.legend(loc='lower right')\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c158b385",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.11.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}