diff --git a/02_activities/assignments/assignment_1.ipynb b/02_activities/assignments/assignment_1.ipynb index 28d4df017..d8e419587 100644 --- a/02_activities/assignments/assignment_1.ipynb +++ b/02_activities/assignments/assignment_1.ipynb @@ -34,10 +34,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "4a3485d6-ba58-4660-a983-5680821c5719", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Matplotlib is building the font cache; this may take a moment.\n" + ] + } + ], "source": [ "# Import standard libraries\n", "import pandas as pd\n", @@ -56,10 +64,288 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "a431d282-f9ca-4d5d-8912-71ffc9d8ea19", "metadata": {}, - "outputs": [], + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
alcoholmalic_acidashalcalinity_of_ashmagnesiumtotal_phenolsflavanoidsnonflavanoid_phenolsproanthocyaninscolor_intensityhueod280/od315_of_diluted_winesprolineclass
014.231.712.4315.6127.02.803.060.282.295.641.043.921065.00
113.201.782.1411.2100.02.652.760.261.284.381.053.401050.00
213.162.362.6718.6101.02.803.240.302.815.681.033.171185.00
314.371.952.5016.8113.03.853.490.242.187.800.863.451480.00
413.242.592.8721.0118.02.802.690.391.824.321.042.93735.00
.............................................
17313.715.652.4520.595.01.680.610.521.067.700.641.74740.02
17413.403.912.4823.0102.01.800.750.431.417.300.701.56750.02
17513.274.282.2620.0120.01.590.690.431.3510.200.591.56835.02
17613.172.592.3720.0120.01.650.680.531.469.300.601.62840.02
17714.134.102.7424.596.02.050.760.561.359.200.611.60560.02
\n", + "

178 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " alcohol malic_acid ash alcalinity_of_ash magnesium total_phenols \\\n", + "0 14.23 1.71 2.43 15.6 127.0 2.80 \n", + "1 13.20 1.78 2.14 11.2 100.0 2.65 \n", + "2 13.16 2.36 2.67 18.6 101.0 2.80 \n", + "3 14.37 1.95 2.50 16.8 113.0 3.85 \n", + "4 13.24 2.59 2.87 21.0 118.0 2.80 \n", + ".. ... ... ... ... ... ... \n", + "173 13.71 5.65 2.45 20.5 95.0 1.68 \n", + "174 13.40 3.91 2.48 23.0 102.0 1.80 \n", + "175 13.27 4.28 2.26 20.0 120.0 1.59 \n", + "176 13.17 2.59 2.37 20.0 120.0 1.65 \n", + "177 14.13 4.10 2.74 24.5 96.0 2.05 \n", + "\n", + " flavanoids nonflavanoid_phenols proanthocyanins color_intensity hue \\\n", + "0 3.06 0.28 2.29 5.64 1.04 \n", + "1 2.76 0.26 1.28 4.38 1.05 \n", + "2 3.24 0.30 2.81 5.68 1.03 \n", + "3 3.49 0.24 2.18 7.80 0.86 \n", + "4 2.69 0.39 1.82 4.32 1.04 \n", + ".. ... ... ... ... ... \n", + "173 0.61 0.52 1.06 7.70 0.64 \n", + "174 0.75 0.43 1.41 7.30 0.70 \n", + "175 0.69 0.43 1.35 10.20 0.59 \n", + "176 0.68 0.53 1.46 9.30 0.60 \n", + "177 0.76 0.56 1.35 9.20 0.61 \n", + "\n", + " od280/od315_of_diluted_wines proline class \n", + "0 3.92 1065.0 0 \n", + "1 3.40 1050.0 0 \n", + "2 3.17 1185.0 0 \n", + "3 3.45 1480.0 0 \n", + "4 2.93 735.0 0 \n", + ".. ... ... ... \n", + "173 1.74 740.0 2 \n", + "174 1.56 750.0 2 \n", + "175 1.56 835.0 2 \n", + "176 1.62 840.0 2 \n", + "177 1.60 560.0 2 \n", + "\n", + "[178 rows x 14 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.datasets import load_wine\n", "\n", @@ -96,7 +382,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Your answer here" + "# 178 rows × 14 columns" ] }, { @@ -109,12 +395,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "df0ef103", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "14" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your answer here" + "14 " ] }, { @@ -127,12 +424,40 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "47989426", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 178 entries, 0 to 177\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 alcohol 178 non-null float64\n", + " 1 malic_acid 178 non-null float64\n", + " 2 ash 178 non-null float64\n", + " 3 alcalinity_of_ash 178 non-null float64\n", + " 4 magnesium 178 non-null float64\n", + " 5 total_phenols 178 non-null float64\n", + " 6 flavanoids 178 non-null float64\n", + " 7 nonflavanoid_phenols 178 non-null float64\n", + " 8 proanthocyanins 178 non-null float64\n", + " 9 color_intensity 178 non-null float64\n", + " 10 hue 178 non-null float64\n", + " 11 od280/od315_of_diluted_wines 178 non-null float64\n", + " 12 proline 178 non-null float64\n", + " 13 class 178 non-null int64 \n", + "dtypes: float64(13), int64(1)\n", + "memory usage: 19.6 KB\n" + ] + } + ], "source": [ - "# Your answer here" + "wine_df.info()" ] }, { @@ -146,12 +471,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "bd7b0910", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "178" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your answer here" + "178 " ] }, { @@ -175,10 +511,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "cc899b59", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " alcohol malic_acid ash alcalinity_of_ash magnesium \\\n", + "0 1.518613 -0.562250 0.232053 -1.169593 1.913905 \n", + "1 0.246290 -0.499413 -0.827996 -2.490847 0.018145 \n", + "2 0.196879 0.021231 1.109334 -0.268738 0.088358 \n", + "3 1.691550 -0.346811 0.487926 -0.809251 0.930918 \n", + "4 0.295700 0.227694 1.840403 0.451946 1.281985 \n", + "\n", + " total_phenols flavanoids nonflavanoid_phenols proanthocyanins \\\n", + "0 0.808997 1.034819 -0.659563 1.224884 \n", + "1 0.568648 0.733629 -0.820719 -0.544721 \n", + "2 0.808997 1.215533 -0.498407 2.135968 \n", + "3 2.491446 1.466525 -0.981875 1.032155 \n", + "4 0.808997 0.663351 0.226796 0.401404 \n", + "\n", + " color_intensity hue od280/od315_of_diluted_wines proline \n", + "0 0.251717 0.362177 1.847920 1.013009 \n", + "1 -0.293321 0.406051 1.113449 0.965242 \n", + "2 0.269020 0.318304 0.788587 1.395148 \n", + "3 1.186068 -0.427544 1.184071 2.334574 \n", + "4 -0.319276 0.362177 0.449601 -0.037874 \n" + ] + } + ], "source": [ "# Select predictors (excluding the last column)\n", "predictors = wine_df.iloc[:, :-1]\n", @@ -204,7 +567,7 @@ "id": "403ef0bb", "metadata": {}, "source": [ - "> Your answer here..." + "It is important to standardize the predictor variables because the dataset have to be on the same scale. Differences in scale can disproportionately affect machine learning models that rely on distance metrics (For example K-Nearest Neighbors). We use the `StandardScaler()` function in the sklearn.preprocessing module for this.> Your answer here..." ] }, { @@ -220,7 +583,7 @@ "id": "fdee5a15", "metadata": {}, "source": [ - "> Your answer here..." + "We do not standardize our response variable class because this is our target variable and it is a categorical variable with distinct wine types> Your answer here..." ] }, { @@ -236,7 +599,7 @@ "id": "f0676c21", "metadata": {}, "source": [ - "> Your answer here..." + "> The `np.random.seed()` function is used to control the randomness in the code. Usually, when we generate random numbers, they change every time we run the code. By setting a \"seed\" with `np.random.seed()`, we make sure the random numbers stay the same each time it is run. This is useful in getting consistent results for testing, comparisons or for reproducibility." ] }, { @@ -251,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "72c101f2", "metadata": {}, "outputs": [], @@ -261,7 +624,13 @@ "\n", "# split the data into a training and testing set. hint: use train_test_split !\n", "\n", - "# Your code here ..." + "# split predictors and response, then create non-overlapping training and testing sets\n", + "X = predictors_standardized # standardized predictors\n", + "y = wine_df['class'] # response variable\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y, train_size=0.75, stratify=y, random_state=123\n", + ")" ] }, { @@ -284,12 +653,1519 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "08818c64", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best number of neighbors: 7\n", + "Best cross-validation accuracy: 0.9775\n" + ] + } + ], "source": [ - "# Your code here..." + "# Step 1: Initialize the KNN classifier\n", + "knn = KNeighborsClassifier()\n", + "\n", + "# Step 2: Define parameter grid for n_neighbors from 1 to 50\n", + "parameter_grid = {'n_neighbors': range(1, 51)}\n", + "\n", + "# Step 3: Set up GridSearchCV with 10-fold cross-validation\n", + "wine_tune_grid = GridSearchCV(\n", + " estimator=knn,\n", + " param_grid=parameter_grid,\n", + " cv=10,\n", + " scoring='accuracy'\n", + ")\n", + "\n", + "# Fit the grid search on training data\n", + "wine_tune_grid.fit(X_train, y_train)\n", + "\n", + "# Step 4: Get the best n_neighbors value\n", + "best_knn = wine_tune_grid.best_params_['n_neighbors']\n", + "print(f\"Best number of neighbors: {best_knn}\")\n", + "print(f\"Best cross-validation accuracy: {wine_tune_grid.best_score_:.4f}\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "776a7fb4", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mean_fit_timestd_fit_timemean_score_timestd_score_timeparam_n_neighborsparamssplit0_test_scoresplit1_test_scoresplit2_test_scoresplit3_test_scoresplit4_test_scoresplit5_test_scoresplit6_test_scoresplit7_test_scoresplit8_test_scoresplit9_test_scoremean_test_scorestd_test_scorerank_test_score
00.0218000.0431650.0318010.0562821{'n_neighbors': 1}1.0000000.9285711.00.6923081.0000001.01.0000001.0000001.0000000.9230770.9543960.09213939
10.0067980.0027140.0103990.0046952{'n_neighbors': 2}1.0000000.9285711.00.6923081.0000001.01.0000000.9230770.9230770.9230770.9390110.08962850
20.0174970.0106580.0223010.0084623{'n_neighbors': 3}1.0000000.9285711.00.8461541.0000001.01.0000001.0000000.9230770.9230770.9620880.05121728
30.0070010.0070980.0111000.0035884{'n_neighbors': 4}0.9285710.9285711.00.8461540.9230771.01.0000001.0000000.9230771.0000000.9549450.05040635
40.0088010.0046460.0115980.0059355{'n_neighbors': 5}1.0000000.9285711.00.9230770.9230771.01.0000001.0000000.9230771.0000000.9697800.0370427
50.0045000.0017480.0078000.0019426{'n_neighbors': 6}0.9285711.0000001.00.9230770.9230771.01.0000001.0000000.9230771.0000000.9697800.0370427
60.0047000.0017370.0067990.0015387{'n_neighbors': 7}1.0000000.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9774730.0344411
70.0044990.0017470.0074000.0018578{'n_neighbors': 8}0.9285711.0000001.00.8461540.9230771.01.0000000.9230770.9230771.0000000.9543960.05071939
80.0045980.0012020.0102000.0092179{'n_neighbors': 9}1.0000000.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9697800.0370429
90.0041990.0016010.0073020.00215010{'n_neighbors': 10}1.0000000.9285711.00.8461540.9230771.00.9230770.9230771.0000001.0000000.9543960.05071939
100.0046030.0014970.0074970.00237411{'n_neighbors': 11}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
110.0039990.0013420.0072030.00160112{'n_neighbors': 12}1.0000000.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9697800.0370429
120.0044990.0013600.0073000.00219313{'n_neighbors': 13}1.0000000.9285711.01.0000000.9230771.01.0000000.9230771.0000001.0000000.9774730.0344411
130.0047990.0016040.0069990.00195014{'n_neighbors': 14}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
140.0065030.0050840.0073980.00265315{'n_neighbors': 15}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
150.0040990.0015160.0078010.00222916{'n_neighbors': 16}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
160.0050000.0016750.0065990.00190917{'n_neighbors': 17}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
170.0039000.0013770.0070000.00205218{'n_neighbors': 18}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
180.0042990.0011870.0081030.00170219{'n_neighbors': 19}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
190.0046030.0014290.0067970.00203920{'n_neighbors': 20}0.8571430.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9631870.04877711
200.0044020.0020120.0067990.00231821{'n_neighbors': 21}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9703300.0363803
210.0043000.0011020.0067010.00161522{'n_neighbors': 22}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9703300.0363803
220.0044030.0018560.0071970.00204123{'n_neighbors': 23}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9626370.03741113
230.0045000.0016870.0075010.00201524{'n_neighbors': 24}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9703300.0363803
240.0040980.0011330.0076010.00180225{'n_neighbors': 25}0.9285710.9285711.00.8461540.9230771.01.0000001.0000001.0000000.9230770.9549450.05040633
250.0044990.0015650.0067010.00205326{'n_neighbors': 26}0.9285710.9285711.00.8461540.9230771.01.0000001.0000001.0000001.0000000.9626370.05082313
260.0047990.0016640.0073990.00143327{'n_neighbors': 27}0.9285710.9285711.00.8461540.9230771.01.0000001.0000001.0000000.9230770.9549450.05040633
270.0043010.0015520.0075990.00180228{'n_neighbors': 28}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9626370.03741113
280.0047020.0012740.0066970.00167829{'n_neighbors': 29}0.9285710.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9626370.03741113
290.0046030.0012820.0078970.00186930{'n_neighbors': 30}0.8571430.9285711.00.9230770.9230771.01.0000000.9230771.0000000.9230770.9478020.04683242
300.0043010.0014200.0072990.00200631{'n_neighbors': 31}0.8571430.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9554950.04843029
310.0048990.0024690.0081020.00254832{'n_neighbors': 32}0.8571430.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9554950.04843029
320.0042990.0014870.0080030.00236833{'n_neighbors': 33}0.8571430.9285711.00.9230770.9230771.01.0000001.0000001.0000000.9230770.9554950.04843029
330.0046020.0017470.0065980.00185834{'n_neighbors': 34}0.8571430.9285711.00.9230770.9230771.01.0000001.0000001.0000001.0000000.9631870.04877711
340.0043960.0014290.0076020.00215435{'n_neighbors': 35}0.8571430.9285711.00.9230770.9230771.00.9230771.0000001.0000001.0000000.9554950.04843029
350.0047000.0011020.0072000.00189036{'n_neighbors': 36}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
360.0047980.0015350.0073000.00184737{'n_neighbors': 37}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
370.0046000.0014990.0067000.00173638{'n_neighbors': 38}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
380.0047980.0017800.0081020.00336639{'n_neighbors': 39}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000001.0000000.9626370.03741117
390.0054020.0016290.0072980.00134940{'n_neighbors': 40}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000000.9230770.9549450.03684235
400.0046020.0015000.0079140.00294041{'n_neighbors': 41}0.9285710.9285711.01.0000000.9230771.01.0000000.9230771.0000001.0000000.9703300.0363803
410.0044020.0018560.0069990.00195042{'n_neighbors': 42}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000000.9230770.9549450.03684235
420.0047050.0017390.0071970.00147143{'n_neighbors': 43}0.9285710.9285711.00.9230770.9230771.01.0000000.9230771.0000000.9230770.9549450.03684235
430.0042990.0018470.0078030.00236044{'n_neighbors': 44}0.9285710.9285711.00.8461540.9230771.01.0000000.9230771.0000000.9230770.9472530.04878744
440.0050000.0016770.0071990.00160345{'n_neighbors': 45}0.9285710.9285711.00.8461540.9230771.01.0000000.9230771.0000000.9230770.9472530.04878744
450.0046980.0012700.0081490.00225846{'n_neighbors': 46}0.9285710.9285711.00.8461540.9230771.01.0000000.9230771.0000000.9230770.9472530.04878744
460.0047000.0019000.0073000.00205247{'n_neighbors': 47}0.8571430.9285711.00.9230770.9230771.01.0000000.9230771.0000000.9230770.9478020.04683242
470.0044000.0013590.0082000.00285848{'n_neighbors': 48}0.9285710.9285711.00.9230770.9230771.01.0000000.9230770.9230770.9230770.9472530.03459444
480.0043000.0012700.0072020.00147349{'n_neighbors': 49}0.9285710.9285711.00.9230770.9230771.01.0000000.9230770.9230770.9230770.9472530.03459444
490.0039990.0011860.0085120.00363750{'n_neighbors': 50}0.9285710.9285711.00.9230770.9230771.01.0000000.9230770.9230770.9230770.9472530.03459444
\n", + "
" + ], + "text/plain": [ + " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", + "0 0.021800 0.043165 0.031801 0.056282 \n", + "1 0.006798 0.002714 0.010399 0.004695 \n", + "2 0.017497 0.010658 0.022301 0.008462 \n", + "3 0.007001 0.007098 0.011100 0.003588 \n", + "4 0.008801 0.004646 0.011598 0.005935 \n", + "5 0.004500 0.001748 0.007800 0.001942 \n", + "6 0.004700 0.001737 0.006799 0.001538 \n", + "7 0.004499 0.001747 0.007400 0.001857 \n", + "8 0.004598 0.001202 0.010200 0.009217 \n", + "9 0.004199 0.001601 0.007302 0.002150 \n", + "10 0.004603 0.001497 0.007497 0.002374 \n", + "11 0.003999 0.001342 0.007203 0.001601 \n", + "12 0.004499 0.001360 0.007300 0.002193 \n", + "13 0.004799 0.001604 0.006999 0.001950 \n", + "14 0.006503 0.005084 0.007398 0.002653 \n", + "15 0.004099 0.001516 0.007801 0.002229 \n", + "16 0.005000 0.001675 0.006599 0.001909 \n", + "17 0.003900 0.001377 0.007000 0.002052 \n", + "18 0.004299 0.001187 0.008103 0.001702 \n", + "19 0.004603 0.001429 0.006797 0.002039 \n", + "20 0.004402 0.002012 0.006799 0.002318 \n", + "21 0.004300 0.001102 0.006701 0.001615 \n", + "22 0.004403 0.001856 0.007197 0.002041 \n", + "23 0.004500 0.001687 0.007501 0.002015 \n", + "24 0.004098 0.001133 0.007601 0.001802 \n", + "25 0.004499 0.001565 0.006701 0.002053 \n", + "26 0.004799 0.001664 0.007399 0.001433 \n", + "27 0.004301 0.001552 0.007599 0.001802 \n", + "28 0.004702 0.001274 0.006697 0.001678 \n", + "29 0.004603 0.001282 0.007897 0.001869 \n", + "30 0.004301 0.001420 0.007299 0.002006 \n", + "31 0.004899 0.002469 0.008102 0.002548 \n", + "32 0.004299 0.001487 0.008003 0.002368 \n", + "33 0.004602 0.001747 0.006598 0.001858 \n", + "34 0.004396 0.001429 0.007602 0.002154 \n", + "35 0.004700 0.001102 0.007200 0.001890 \n", + "36 0.004798 0.001535 0.007300 0.001847 \n", + "37 0.004600 0.001499 0.006700 0.001736 \n", + "38 0.004798 0.001780 0.008102 0.003366 \n", + "39 0.005402 0.001629 0.007298 0.001349 \n", + "40 0.004602 0.001500 0.007914 0.002940 \n", + "41 0.004402 0.001856 0.006999 0.001950 \n", + "42 0.004705 0.001739 0.007197 0.001471 \n", + "43 0.004299 0.001847 0.007803 0.002360 \n", + "44 0.005000 0.001677 0.007199 0.001603 \n", + "45 0.004698 0.001270 0.008149 0.002258 \n", + "46 0.004700 0.001900 0.007300 0.002052 \n", + "47 0.004400 0.001359 0.008200 0.002858 \n", + "48 0.004300 0.001270 0.007202 0.001473 \n", + "49 0.003999 0.001186 0.008512 0.003637 \n", + "\n", + " param_n_neighbors params split0_test_score \\\n", + "0 1 {'n_neighbors': 1} 1.000000 \n", + "1 2 {'n_neighbors': 2} 1.000000 \n", + "2 3 {'n_neighbors': 3} 1.000000 \n", + "3 4 {'n_neighbors': 4} 0.928571 \n", + "4 5 {'n_neighbors': 5} 1.000000 \n", + "5 6 {'n_neighbors': 6} 0.928571 \n", + "6 7 {'n_neighbors': 7} 1.000000 \n", + "7 8 {'n_neighbors': 8} 0.928571 \n", + "8 9 {'n_neighbors': 9} 1.000000 \n", + "9 10 {'n_neighbors': 10} 1.000000 \n", + "10 11 {'n_neighbors': 11} 0.928571 \n", + "11 12 {'n_neighbors': 12} 1.000000 \n", + "12 13 {'n_neighbors': 13} 1.000000 \n", + "13 14 {'n_neighbors': 14} 0.928571 \n", + "14 15 {'n_neighbors': 15} 0.928571 \n", + "15 16 {'n_neighbors': 16} 0.928571 \n", + "16 17 {'n_neighbors': 17} 0.928571 \n", + "17 18 {'n_neighbors': 18} 0.928571 \n", + "18 19 {'n_neighbors': 19} 0.928571 \n", + "19 20 {'n_neighbors': 20} 0.857143 \n", + "20 21 {'n_neighbors': 21} 0.928571 \n", + "21 22 {'n_neighbors': 22} 0.928571 \n", + "22 23 {'n_neighbors': 23} 0.928571 \n", + "23 24 {'n_neighbors': 24} 0.928571 \n", + "24 25 {'n_neighbors': 25} 0.928571 \n", + "25 26 {'n_neighbors': 26} 0.928571 \n", + "26 27 {'n_neighbors': 27} 0.928571 \n", + "27 28 {'n_neighbors': 28} 0.928571 \n", + "28 29 {'n_neighbors': 29} 0.928571 \n", + "29 30 {'n_neighbors': 30} 0.857143 \n", + "30 31 {'n_neighbors': 31} 0.857143 \n", + "31 32 {'n_neighbors': 32} 0.857143 \n", + "32 33 {'n_neighbors': 33} 0.857143 \n", + "33 34 {'n_neighbors': 34} 0.857143 \n", + "34 35 {'n_neighbors': 35} 0.857143 \n", + "35 36 {'n_neighbors': 36} 0.928571 \n", + "36 37 {'n_neighbors': 37} 0.928571 \n", + "37 38 {'n_neighbors': 38} 0.928571 \n", + "38 39 {'n_neighbors': 39} 0.928571 \n", + "39 40 {'n_neighbors': 40} 0.928571 \n", + "40 41 {'n_neighbors': 41} 0.928571 \n", + "41 42 {'n_neighbors': 42} 0.928571 \n", + "42 43 {'n_neighbors': 43} 0.928571 \n", + "43 44 {'n_neighbors': 44} 0.928571 \n", + "44 45 {'n_neighbors': 45} 0.928571 \n", + "45 46 {'n_neighbors': 46} 0.928571 \n", + "46 47 {'n_neighbors': 47} 0.857143 \n", + "47 48 {'n_neighbors': 48} 0.928571 \n", + "48 49 {'n_neighbors': 49} 0.928571 \n", + "49 50 {'n_neighbors': 50} 0.928571 \n", + "\n", + " split1_test_score split2_test_score split3_test_score \\\n", + "0 0.928571 1.0 0.692308 \n", + "1 0.928571 1.0 0.692308 \n", + "2 0.928571 1.0 0.846154 \n", + "3 0.928571 1.0 0.846154 \n", + "4 0.928571 1.0 0.923077 \n", + "5 1.000000 1.0 0.923077 \n", + "6 0.928571 1.0 0.923077 \n", + "7 1.000000 1.0 0.846154 \n", + "8 0.928571 1.0 0.923077 \n", + "9 0.928571 1.0 0.846154 \n", + "10 0.928571 1.0 0.923077 \n", + "11 0.928571 1.0 0.923077 \n", + "12 0.928571 1.0 1.000000 \n", + "13 0.928571 1.0 0.923077 \n", + "14 0.928571 1.0 0.923077 \n", + "15 0.928571 1.0 0.923077 \n", + "16 0.928571 1.0 0.923077 \n", + "17 0.928571 1.0 0.923077 \n", + "18 0.928571 1.0 0.923077 \n", + "19 0.928571 1.0 0.923077 \n", + "20 0.928571 1.0 0.923077 \n", + "21 0.928571 1.0 0.923077 \n", + "22 0.928571 1.0 0.923077 \n", + "23 0.928571 1.0 0.923077 \n", + "24 0.928571 1.0 0.846154 \n", + "25 0.928571 1.0 0.846154 \n", + "26 0.928571 1.0 0.846154 \n", + "27 0.928571 1.0 0.923077 \n", + "28 0.928571 1.0 0.923077 \n", + "29 0.928571 1.0 0.923077 \n", + "30 0.928571 1.0 0.923077 \n", + "31 0.928571 1.0 0.923077 \n", + "32 0.928571 1.0 0.923077 \n", + "33 0.928571 1.0 0.923077 \n", + "34 0.928571 1.0 0.923077 \n", + "35 0.928571 1.0 0.923077 \n", + "36 0.928571 1.0 0.923077 \n", + "37 0.928571 1.0 0.923077 \n", + "38 0.928571 1.0 0.923077 \n", + "39 0.928571 1.0 0.923077 \n", + "40 0.928571 1.0 1.000000 \n", + "41 0.928571 1.0 0.923077 \n", + "42 0.928571 1.0 0.923077 \n", + "43 0.928571 1.0 0.846154 \n", + "44 0.928571 1.0 0.846154 \n", + "45 0.928571 1.0 0.846154 \n", + "46 0.928571 1.0 0.923077 \n", + "47 0.928571 1.0 0.923077 \n", + "48 0.928571 1.0 0.923077 \n", + "49 0.928571 1.0 0.923077 \n", + "\n", + " split4_test_score split5_test_score split6_test_score \\\n", + "0 1.000000 1.0 1.000000 \n", + "1 1.000000 1.0 1.000000 \n", + "2 1.000000 1.0 1.000000 \n", + "3 0.923077 1.0 1.000000 \n", + "4 0.923077 1.0 1.000000 \n", + "5 0.923077 1.0 1.000000 \n", + "6 0.923077 1.0 1.000000 \n", + "7 0.923077 1.0 1.000000 \n", + "8 0.923077 1.0 1.000000 \n", + "9 0.923077 1.0 0.923077 \n", + "10 0.923077 1.0 1.000000 \n", + "11 0.923077 1.0 1.000000 \n", + "12 0.923077 1.0 1.000000 \n", + "13 0.923077 1.0 1.000000 \n", + "14 0.923077 1.0 1.000000 \n", + "15 0.923077 1.0 1.000000 \n", + "16 0.923077 1.0 1.000000 \n", + "17 0.923077 1.0 1.000000 \n", + "18 0.923077 1.0 1.000000 \n", + "19 0.923077 1.0 1.000000 \n", + "20 0.923077 1.0 1.000000 \n", + "21 0.923077 1.0 1.000000 \n", + "22 0.923077 1.0 1.000000 \n", + "23 0.923077 1.0 1.000000 \n", + "24 0.923077 1.0 1.000000 \n", + "25 0.923077 1.0 1.000000 \n", + "26 0.923077 1.0 1.000000 \n", + "27 0.923077 1.0 1.000000 \n", + "28 0.923077 1.0 1.000000 \n", + "29 0.923077 1.0 1.000000 \n", + "30 0.923077 1.0 1.000000 \n", + "31 0.923077 1.0 1.000000 \n", + "32 0.923077 1.0 1.000000 \n", + "33 0.923077 1.0 1.000000 \n", + "34 0.923077 1.0 0.923077 \n", + "35 0.923077 1.0 1.000000 \n", + "36 0.923077 1.0 1.000000 \n", + "37 0.923077 1.0 1.000000 \n", + "38 0.923077 1.0 1.000000 \n", + "39 0.923077 1.0 1.000000 \n", + "40 0.923077 1.0 1.000000 \n", + "41 0.923077 1.0 1.000000 \n", + "42 0.923077 1.0 1.000000 \n", + "43 0.923077 1.0 1.000000 \n", + "44 0.923077 1.0 1.000000 \n", + "45 0.923077 1.0 1.000000 \n", + "46 0.923077 1.0 1.000000 \n", + "47 0.923077 1.0 1.000000 \n", + "48 0.923077 1.0 1.000000 \n", + "49 0.923077 1.0 1.000000 \n", + "\n", + " split7_test_score split8_test_score split9_test_score mean_test_score \\\n", + "0 1.000000 1.000000 0.923077 0.954396 \n", + "1 0.923077 0.923077 0.923077 0.939011 \n", + "2 1.000000 0.923077 0.923077 0.962088 \n", + "3 1.000000 0.923077 1.000000 0.954945 \n", + "4 1.000000 0.923077 1.000000 0.969780 \n", + "5 1.000000 0.923077 1.000000 0.969780 \n", + "6 1.000000 1.000000 1.000000 0.977473 \n", + "7 0.923077 0.923077 1.000000 0.954396 \n", + "8 0.923077 1.000000 1.000000 0.969780 \n", + "9 0.923077 1.000000 1.000000 0.954396 \n", + "10 0.923077 1.000000 1.000000 0.962637 \n", + "11 0.923077 1.000000 1.000000 0.969780 \n", + "12 0.923077 1.000000 1.000000 0.977473 \n", + "13 0.923077 1.000000 1.000000 0.962637 \n", + "14 0.923077 1.000000 1.000000 0.962637 \n", + "15 0.923077 1.000000 1.000000 0.962637 \n", + "16 0.923077 1.000000 1.000000 0.962637 \n", + "17 0.923077 1.000000 1.000000 0.962637 \n", + "18 0.923077 1.000000 1.000000 0.962637 \n", + "19 1.000000 1.000000 1.000000 0.963187 \n", + "20 1.000000 1.000000 1.000000 0.970330 \n", + "21 1.000000 1.000000 1.000000 0.970330 \n", + "22 1.000000 1.000000 0.923077 0.962637 \n", + "23 1.000000 1.000000 1.000000 0.970330 \n", + "24 1.000000 1.000000 0.923077 0.954945 \n", + "25 1.000000 1.000000 1.000000 0.962637 \n", + "26 1.000000 1.000000 0.923077 0.954945 \n", + "27 1.000000 1.000000 0.923077 0.962637 \n", + "28 1.000000 1.000000 0.923077 0.962637 \n", + "29 0.923077 1.000000 0.923077 0.947802 \n", + "30 1.000000 1.000000 0.923077 0.955495 \n", + "31 1.000000 1.000000 0.923077 0.955495 \n", + "32 1.000000 1.000000 0.923077 0.955495 \n", + "33 1.000000 1.000000 1.000000 0.963187 \n", + "34 1.000000 1.000000 1.000000 0.955495 \n", + "35 0.923077 1.000000 1.000000 0.962637 \n", + "36 0.923077 1.000000 1.000000 0.962637 \n", + "37 0.923077 1.000000 1.000000 0.962637 \n", + "38 0.923077 1.000000 1.000000 0.962637 \n", + "39 0.923077 1.000000 0.923077 0.954945 \n", + "40 0.923077 1.000000 1.000000 0.970330 \n", + "41 0.923077 1.000000 0.923077 0.954945 \n", + "42 0.923077 1.000000 0.923077 0.954945 \n", + "43 0.923077 1.000000 0.923077 0.947253 \n", + "44 0.923077 1.000000 0.923077 0.947253 \n", + "45 0.923077 1.000000 0.923077 0.947253 \n", + "46 0.923077 1.000000 0.923077 0.947802 \n", + "47 0.923077 0.923077 0.923077 0.947253 \n", + "48 0.923077 0.923077 0.923077 0.947253 \n", + "49 0.923077 0.923077 0.923077 0.947253 \n", + "\n", + " std_test_score rank_test_score \n", + "0 0.092139 39 \n", + "1 0.089628 50 \n", + "2 0.051217 28 \n", + "3 0.050406 35 \n", + "4 0.037042 7 \n", + "5 0.037042 7 \n", + "6 0.034441 1 \n", + "7 0.050719 39 \n", + "8 0.037042 9 \n", + "9 0.050719 39 \n", + "10 0.037411 17 \n", + "11 0.037042 9 \n", + "12 0.034441 1 \n", + "13 0.037411 17 \n", + "14 0.037411 17 \n", + "15 0.037411 17 \n", + "16 0.037411 17 \n", + "17 0.037411 17 \n", + "18 0.037411 17 \n", + "19 0.048777 11 \n", + "20 0.036380 3 \n", + "21 0.036380 3 \n", + "22 0.037411 13 \n", + "23 0.036380 3 \n", + "24 0.050406 33 \n", + "25 0.050823 13 \n", + "26 0.050406 33 \n", + "27 0.037411 13 \n", + "28 0.037411 13 \n", + "29 0.046832 42 \n", + "30 0.048430 29 \n", + "31 0.048430 29 \n", + "32 0.048430 29 \n", + "33 0.048777 11 \n", + "34 0.048430 29 \n", + "35 0.037411 17 \n", + "36 0.037411 17 \n", + "37 0.037411 17 \n", + "38 0.037411 17 \n", + "39 0.036842 35 \n", + "40 0.036380 3 \n", + "41 0.036842 35 \n", + "42 0.036842 35 \n", + "43 0.048787 44 \n", + "44 0.048787 44 \n", + "45 0.048787 44 \n", + "46 0.046832 42 \n", + "47 0.034594 44 \n", + "48 0.034594 44 \n", + "49 0.034594 44 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "accuracy_grid = pd.DataFrame(wine_tune_grid.cv_results_)\n", + "accuracy_grid" ] }, { @@ -305,12 +2181,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "ffefa9f2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test set accuracy with k=7: 0.9333\n", + "This means the model correctly classified 93.33% of the test wines\n" + ] + } + ], "source": [ - "# Your code here..." + "# Create a new KNN model with the best k value we found\n", + "knn_best = KNeighborsClassifier(n_neighbors=best_knn)\n", + "\n", + "# Train (fit) the model on the training data\n", + "knn_best.fit(X_train, y_train)\n", + "\n", + "# Make predictions on the test set\n", + "y_pred = knn_best.predict(X_test)\n", + "\n", + "# Calculate accuracy on the test set\n", + "test_accuracy = accuracy_score(y_test, y_pred)\n", + "\n", + "print(f\"Test set accuracy with k={best_knn}: {test_accuracy:.4f}\")\n", + "print(f\"This means the model correctly classified {test_accuracy*100:.2f}% of the test wines\")" ] }, { @@ -365,7 +2263,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.10.4", + "display_name": "lcr-env (3.11.14)", "language": "python", "name": "python3" }, @@ -379,12 +2277,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.19" - }, - "vscode": { - "interpreter": { - "hash": "497a84dc8fec8cf8d24e7e87b6d954c9a18a327edc66feb9b9ea7e9e72cc5c7e" - } + "version": "3.11.14" } }, "nbformat": 4,