mirror of
https://github.com/ArthurDanjou/breast-cancer-detection.git
synced 2026-01-14 15:54:14 +01:00
330 lines
80 KiB
Plaintext
330 lines
80 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"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": 2,
|
|
"id": "4dd5223b",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import warnings\n",
|
|
"warnings.filterwarnings('ignore')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"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: 1, 1: 0}) # Map 2 to 1 and 1 to 0, 1 = pacient healthy, 0 = 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": 4,
|
|
"id": "754dce9b",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Number of samples: 116\n",
|
|
"Number of features: 9\n",
|
|
"Number of classes: 2\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(\"Number of samples:\", X.shape[0])\n",
|
|
"print(\"Number of features:\", X.shape[1])\n",
|
|
"print(\"Number of classes:\", len(np.unique(y)))"
|
|
]
|
|
},
|
|
{
|
|
"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": "31d5bc79",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 2) Cross validation to find the best k nearest neighbor"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "b2e03ac1",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"The best k for k-NN is k = 23\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, y, 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": "698d03a8",
|
|
"metadata": {},
|
|
"source": [
|
|
"In k-NN classification, to achieve the best prediction performance, we need to find the optimal number of neighbors that maximizes the evaluation score of our models. Here, we use the $f1\\_score$ from sklearn.metrics, as it provides a good balance between precision (e.g., correctly predicting a sick patient as sick, or a healthy patient as healthy) and recall (e.g., correctly identifying sick patients among all those predicted as sick).\n",
|
|
"\n",
|
|
"To determine this hyperparameter, we use 5-fold cross-validation. We chose 5 folds instead of 10 due to the limited amount of data, as this provides a better balance between the sizes of the training and validation sets. After cross-validation, it turns out that the optimal number of neighbors, $k$, is $k = 23$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9f74eaee",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 3) 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": 6,
|
|
"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",
|
|
"# Feature scaling\n",
|
|
"scaler = StandardScaler()\n",
|
|
"\n",
|
|
"X_train_scaled = scaler.fit_transform(X_train)\n",
|
|
"\n",
|
|
"X_test_scaled = scaler.transform(X_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5b2f376f",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 4) Model performance "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "064a5aa7",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Accuracy: 0.8\n",
|
|
"F1 Score: 0.798014888337469\n",
|
|
"Recall: 0.8888888888888888\n",
|
|
"Classification Report:\n",
|
|
" precision recall f1-score support\n",
|
|
"\n",
|
|
" 0 0.86 0.71 0.77 17\n",
|
|
" 1 0.76 0.89 0.82 18\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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DECh8/PzkyRduHAhT9sfOXJELi4uCgsLc1herlw5BQQE6MiRIw7LK1WqlGMfgYGBOnv27G1OnFPnzp3VoEEDxcXFqWzZsurSpYu++OKLP4y0G3OGh4fnWFejRg399ttvunjxosPym19LYGCgJOXrtbRq1Uq+vr6aPXu2kpOT9cgjj+R4L2/Izs7WuHHjVK1aNXl4eKhUqVIqXbq0du7cqbS0tDwfs0KFCvm60f8f//iHSpQooe3bt+v9999XmTJl8vxc4K+MMANQ6Pz8/BQUFKTvv/8+X8+7+eb73Li6ut5yuWVZt32MG/c/3eDl5aW1a9dq+fLl6tatm3bu3KnOnTurWbNmOba9E3fyWm7w8PBQhw4dNH36dM2dOzfXs2WS9Pbbb+uVV15R48aN9emnn2rJkiVatmyZ7r///jyfGZSuvz/58d133+nUqVOSpF27duXrucBfGWEG4K5o06aNDhw4oI0bN/7ptiEhIcrOzta+ffsclv/yyy86d+6c/ROWBSEwMNDhE4w33HxWTpJcXFzUpEkTvffee9q9e7dGjx6tlStXatWqVbfc9405U1NTc6z78ccfVapUKXl7e9/ZC8hF165d9d133+nChQu3/MDEDV9++aUef/xxTZkyRV26dFHz5s3VtGnTHO9JXiM5Ly5evKiePXsqIiJCffr00ZgxY7R58+YC2z9wLyPMANwVr7/+ury9vRUXF6dffvklx/oDBw5owoQJkq5fipOU45OT7733niSpdevWBTZX1apVlZaWpp07d9qXnThxQnPnznXY7syZMzmee+OLVm/+Co8bypcvr9q1a2v69OkOofP9999r6dKl9tdZGB5//HGNHDlS//znP1WuXLlct3N1dc1xNu7f//63fv75Z4dlNwLyVhGbX4MHD9bRo0c1ffp0vffeewoNDVVsbGyu7yPgTPiCWQB3RdWqVTVr1ix17txZNWrUcPjm/w0bNujf//63evToIUmqVauWYmNj9dFHH+ncuXOKiorSf//7X02fPl3t2rXL9asYbkeXLl00ePBgtW/fXgkJCbp06ZI+/PBDVa9e3eHm9xEjRmjt2rVq3bq1QkJCdOrUKX3wwQeqWLGiGjZsmOv+3333XT355JOKjIxUr169dPnyZU2cOFH+/v5KTEwssNdxMxcXF/2///f//nS7Nm3aaMSIEerZs6fq16+vXbt2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",
|
|
"text/plain": [
|
|
"<Figure size 800x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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48dF9erVxfvvv5+BV1eulvT999+LBg0aCFdXV2FtbS2KFCkievfurVP6KK0VwFJen9cXiti9e7eoVKmSsLOzE76+vmLu3Lli9erVqfZLWTRBn4w+Rsq+devWFfb29sLFxUXUqlVLbN68WXt/dHS06Nq1q3Bzc0u1aEJGPx/4fzF9ffBaaa6EhAQxevRoUblyZeHs7CwcHR1F5cqVUy34kFZMafXzxYsXxccffyzc3NyEnZ2dKF26tJg0aZLeeF539uxZASBVqai0Fk0QQogjR46kKjcmhBBPnz4VgYGBokSJEsLW1la4ubmJ5s2ba8tx6fPixQsxefJkUbFiReHg4CDs7OxEhQoVxLhx48SjR4909q1du7bo3r37W59Tioy+d4UQ4sCBA6JChQrCxsZGlC5dWmzYsCHdRRPSotFohI+PjwAgZsyYoXefjL6nKPdQCZFFVzsQUY53584dFC1aFPPmzcOoUaOUDkcRGo0GHh4eaN++vd6vOin3adasGQoWLIj169crHUqaQkJCUK1aNZw9e9agCxKJzAHnzBIRpSE+Pj7VvMl169YhPDwcjRs3ViYoynZmzZqFrVu3GnzBkynNmTMHHTp0YCJLORLnzBIRpeHUqVMYOXIkOnbsiHz58uHs2bNYtWoVKlSogI4dOyodHmUTtWvXRmJiotJhpGvLli1Kh0BkNExmiYjS4OvrCx8fHyxZsgTh4eHImzcvevbsiTlz5uisHkZERMrhnFkiIiIiMlucM0tEREREZovJLBERERGZrVw3Z1aj0eDhw4dwdnbmUnhERERE2ZAQAlFRUShYsGCqxYTelOuS2YcPH8LHx0fpMIiIiIjoLe7du4dChQqlu0+uS2adnZ0ByBfHxcXF6OdTq9U4cOAAWrZsCWtra6Ofj7Ie+9D8sQ/NH/vQvLH/zJ+p+zAyMhI+Pj7avC09uS6ZTZla4OLiYrJk1sHBAS4uLvwAmyn2ofljH5o/9qF5Y/+ZP6X6MCNTQnkBGBERERGZLSazRERERGS2mMwSERERkdliMktEREREZovJLBERERGZLSazRERERGS2mMwSERERkdliMktEREREZovJLBERERGZLSazRERERGS2mMwSERERkdliMktEREREZovJLBERERGZLSazRERERGS2FE1mjx49ijZt2qBgwYJQqVTYtWvXW485cuQIqlWrBltb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UaVKFezfv197Udjdu3dhYfEq516+fDkSExPRoUMHnccJCgrClJSrzHOB774Ddu8GbGyAjRsBe3ulIzJTT54AKRcgduokC/SWKaNsTERERJRhiiezADBs2DAMGzZM731HjhzR2b5z547xA8rmrlwBRo6Ut2fPlgtSkYFiYuTcjF9+kdMJUuZoM5ElIiIyK4pPMyDDJCYC3boBcXFA8+bAiBFKR2SGLl0CatUCgoPlxGMuuEFERGS2mMyamcmTgbNngbx5gbVr5aJUlEFCAKtXy6VoL18GChSQiWy3bkpHRkRERJmULaYZUMb8/vurC72+/x4oWFDZeMxKdDQwaJCcYAwALVvKsluensrGRURERO+E43pmIjwc6NFDDi727w98/LHSEZmZGTNkImtpCcyaJefKMpElIiIyexyZNQNCAAMHAg8eAKVKAQsXKh2RGZo4EThzBggKAurXVzoaIiIiyiIcmTUDa9cCO3YAVlZycNHRUemIzEBkJDB/vvxLAACcnICDB5nIEhER5TAcmc3mbtwAPv1U3p4+HcjFC55l3NmzgL+/fPEAubIXERER5Ugcmc3G1Gqge/dXq6uOHq10RNmcEMA33wB16shEtnBhoF49paMiIiIiI+LIbDY2fTrw11+Aq6u88N7SUumIsrGXL4G+fYGdO+V227ayDFfevIqGRURERMbFkdls6vhxYOZMefvbb+UgI6Xhn3+AqlVlImttDSxaBPz4IxNZIiKiXIAjs9lQRIScXqDRAD17yumflA6NBrh/HyhaFNi6VS6KQERERLkCk9lsaNgw4M4dmZt9/bXS0WRTycmv5l3UqiVHYuvXB9zcFA2LiIiITIvTDLKZTZuADRtknrZxI+DionRE2dCJE0C5csD586/aWrdmIktERJQLMZnNRu7cAQYPlrcnTZIX5dNrNBq5nm/DhsC1a8D48UpHRERERArjNINsIjlZLlcbGSmT2AkTlI4om3n2DAgIkMvQAkDnzvLKOCIiIsrVmMxmE3PmAMeOAc7OcpqBFXvmlT//lMnrw4eAnR2wZAnQrx+gUikdGRERESmMKVM2cPo0EBQkby9dChQrpmw82cqxY0DjxnKKQenSwLZtQKVKSkdFRERE2QSTWYVFRwPduslpBv7+siQXvaZOHaBJE6BgQWDZMsDJSemIiIiIKBthMquwESPkyqs+PsDy5fzm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",
|
|
"text/plain": [
|
|
"<Figure size 800x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"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": "markdown",
|
|
"id": "9bf7ed62",
|
|
"metadata": {},
|
|
"source": [
|
|
"In this optimized k-NN classification, we aim to maximize recall while maintaining good accuracy, in order to minimize the number of misclassifications, particularly cases where a sick patient is incorrectly predicted as healthy. We achieve this goal with a recall of 89% and an accuracy of 80%."
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|