mirror of
https://github.com/ArthurDanjou/breast-cancer-detection.git
synced 2026-01-14 13:54:06 +01:00
267 lines
78 KiB
Plaintext
267 lines
78 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"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, 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']\n",
|
|
" \n",
|
|
"print(\"Dataset shape:\", data.shape)\n",
|
|
"print(data.head())\n",
|
|
"\n",
|
|
"# transform {1,2} to {0,1}\n",
|
|
"y = y.map({1: 0, 2: 1})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a1004c28",
|
|
"metadata": {},
|
|
"source": [
|
|
"# K-NN classifier "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "082c143b",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Cross-validation"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
]
|
|
}
|
|
],
|
|
"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": "code",
|
|
"execution_count": null,
|
|
"id": "feb42adf",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"The best k for k-NN is k = 22\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",
|
|
"# Cross-validation to find the best k\n",
|
|
"\n",
|
|
"for k in K_list:\n",
|
|
" knn = KNeighborsClassifier(n_neighbors=k)\n",
|
|
" score = cross_val_score(knn, X, y, cv=5, scoring='accuracy')\n",
|
|
" k_scores.append(score.mean())\n",
|
|
"\n",
|
|
"k_scores = np.array(k_scores)\n",
|
|
"\n",
|
|
"print(\"The best k for k-NN is k =\", np.argmax(k_scores))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "064a5aa7",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Accuracy: 0.8\n",
|
|
"F1 Score: 0.798014888337469\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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",
|
|
"text/plain": [
|
|
"<Figure size 800x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n",
|
|
"\n",
|
|
"scaler = StandardScaler()\n",
|
|
"X_train = scaler.fit_transform(X_train)\n",
|
|
"X_test = scaler.transform(X_test)\n",
|
|
"\n",
|
|
"knn = KNeighborsClassifier(n_neighbors=22) # using the best k found\n",
|
|
"knn.fit(X_train, y_train)\n",
|
|
"\n",
|
|
"y_pred = knn.predict(X_test)\n",
|
|
"\n",
|
|
"acc = accuracy_score(y_test, y_pred)\n",
|
|
"f1 = f1_score(y_test, y_pred, average='weighted')\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(\"Classification Report:\\n\", class_report)\n",
|
|
"\n",
|
|
"# Plottinf 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)[:, 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()"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|