diff --git a/02_activities/assignments/assignment_1.ipynb b/02_activities/assignments/assignment_1.ipynb
index b0a47da71..aa819ea34 100644
--- a/02_activities/assignments/assignment_1.ipynb
+++ b/02_activities/assignments/assignment_1.ipynb
@@ -34,7 +34,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"id": "4a3485d6-ba58-4660-a983-5680821c5719",
"metadata": {},
"outputs": [],
@@ -56,10 +56,288 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"id": "a431d282-f9ca-4d5d-8912-71ffc9d8ea19",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " alcohol | \n",
+ " malic_acid | \n",
+ " ash | \n",
+ " alcalinity_of_ash | \n",
+ " magnesium | \n",
+ " total_phenols | \n",
+ " flavanoids | \n",
+ " nonflavanoid_phenols | \n",
+ " proanthocyanins | \n",
+ " color_intensity | \n",
+ " hue | \n",
+ " od280/od315_of_diluted_wines | \n",
+ " proline | \n",
+ " class | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 14.23 | \n",
+ " 1.71 | \n",
+ " 2.43 | \n",
+ " 15.6 | \n",
+ " 127.0 | \n",
+ " 2.80 | \n",
+ " 3.06 | \n",
+ " 0.28 | \n",
+ " 2.29 | \n",
+ " 5.64 | \n",
+ " 1.04 | \n",
+ " 3.92 | \n",
+ " 1065.0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 13.20 | \n",
+ " 1.78 | \n",
+ " 2.14 | \n",
+ " 11.2 | \n",
+ " 100.0 | \n",
+ " 2.65 | \n",
+ " 2.76 | \n",
+ " 0.26 | \n",
+ " 1.28 | \n",
+ " 4.38 | \n",
+ " 1.05 | \n",
+ " 3.40 | \n",
+ " 1050.0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 13.16 | \n",
+ " 2.36 | \n",
+ " 2.67 | \n",
+ " 18.6 | \n",
+ " 101.0 | \n",
+ " 2.80 | \n",
+ " 3.24 | \n",
+ " 0.30 | \n",
+ " 2.81 | \n",
+ " 5.68 | \n",
+ " 1.03 | \n",
+ " 3.17 | \n",
+ " 1185.0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14.37 | \n",
+ " 1.95 | \n",
+ " 2.50 | \n",
+ " 16.8 | \n",
+ " 113.0 | \n",
+ " 3.85 | \n",
+ " 3.49 | \n",
+ " 0.24 | \n",
+ " 2.18 | \n",
+ " 7.80 | \n",
+ " 0.86 | \n",
+ " 3.45 | \n",
+ " 1480.0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 13.24 | \n",
+ " 2.59 | \n",
+ " 2.87 | \n",
+ " 21.0 | \n",
+ " 118.0 | \n",
+ " 2.80 | \n",
+ " 2.69 | \n",
+ " 0.39 | \n",
+ " 1.82 | \n",
+ " 4.32 | \n",
+ " 1.04 | \n",
+ " 2.93 | \n",
+ " 735.0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 173 | \n",
+ " 13.71 | \n",
+ " 5.65 | \n",
+ " 2.45 | \n",
+ " 20.5 | \n",
+ " 95.0 | \n",
+ " 1.68 | \n",
+ " 0.61 | \n",
+ " 0.52 | \n",
+ " 1.06 | \n",
+ " 7.70 | \n",
+ " 0.64 | \n",
+ " 1.74 | \n",
+ " 740.0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 174 | \n",
+ " 13.40 | \n",
+ " 3.91 | \n",
+ " 2.48 | \n",
+ " 23.0 | \n",
+ " 102.0 | \n",
+ " 1.80 | \n",
+ " 0.75 | \n",
+ " 0.43 | \n",
+ " 1.41 | \n",
+ " 7.30 | \n",
+ " 0.70 | \n",
+ " 1.56 | \n",
+ " 750.0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 175 | \n",
+ " 13.27 | \n",
+ " 4.28 | \n",
+ " 2.26 | \n",
+ " 20.0 | \n",
+ " 120.0 | \n",
+ " 1.59 | \n",
+ " 0.69 | \n",
+ " 0.43 | \n",
+ " 1.35 | \n",
+ " 10.20 | \n",
+ " 0.59 | \n",
+ " 1.56 | \n",
+ " 835.0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 176 | \n",
+ " 13.17 | \n",
+ " 2.59 | \n",
+ " 2.37 | \n",
+ " 20.0 | \n",
+ " 120.0 | \n",
+ " 1.65 | \n",
+ " 0.68 | \n",
+ " 0.53 | \n",
+ " 1.46 | \n",
+ " 9.30 | \n",
+ " 0.60 | \n",
+ " 1.62 | \n",
+ " 840.0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 177 | \n",
+ " 14.13 | \n",
+ " 4.10 | \n",
+ " 2.74 | \n",
+ " 24.5 | \n",
+ " 96.0 | \n",
+ " 2.05 | \n",
+ " 0.76 | \n",
+ " 0.56 | \n",
+ " 1.35 | \n",
+ " 9.20 | \n",
+ " 0.61 | \n",
+ " 1.60 | \n",
+ " 560.0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\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": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"from sklearn.datasets import load_wine\n",
"\n",
@@ -91,12 +369,23 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"id": "56916892",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "178"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# Your answer here"
+ "wine_df.shape[0]"
]
},
{
@@ -109,12 +398,24 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"id": "df0ef103",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "14"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# Your answer here"
+ "# Your answer here\n",
+ "wine_df.shape[1]"
]
},
{
@@ -127,12 +428,21 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"id": "47989426",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "int64 [0 1 2]\n"
+ ]
+ }
+ ],
"source": [
- "# Your answer here"
+ "# Your answer here\n",
+ "print(wine_df['class'].dtype, wine_df['class'].unique())"
]
},
{
@@ -146,12 +456,24 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"id": "bd7b0910",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "13"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# Your answer here"
+ "# Your answer here\n",
+ "len(wine_df.columns)-1"
]
},
{
@@ -175,10 +497,37 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"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 +553,8 @@
"id": "403ef0bb",
"metadata": {},
"source": [
- "> Your answer here..."
+ "> Your answer here.\n",
+ " #we are using KNN model for preduction which calculates physical distance between data points. We need to standardize the data to ensure large numbers do not dominate the distance calculation skewing the prediction results. Stadardization will ensure the data sets are equal."
]
},
{
@@ -220,7 +570,8 @@
"id": "fdee5a15",
"metadata": {},
"source": [
- "> Your answer here..."
+ "> Your answer here...\n",
+ "# the class variable is an integer variable with values 0,1,2. Scaling this variable would distort the data and result in incorrect predictions"
]
},
{
@@ -236,7 +587,19 @@
"id": "f0676c21",
"metadata": {},
"source": [
- "> Your answer here..."
+ "> Your answer here..\n",
+ "A random seed is used to ensure the random generator returns the same random result in every simulation ensuring the results are consistent and repeatable\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "713ebbbd",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "random.seed(123); np.random.seed(123)\n",
+ "\n"
]
},
{
@@ -251,7 +614,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 38,
"id": "72c101f2",
"metadata": {},
"outputs": [],
@@ -261,7 +624,8 @@
"\n",
"# split the data into a training and testing set. hint: use train_test_split !\n",
"\n",
- "# Your code here ..."
+ "# Your code here ...\n",
+ "X_train, X_test, y_train, y_test = train_test_split(predictors_standardized, wine_df['class'], test_size=0.25, random_state=123)"
]
},
{
@@ -284,12 +648,32 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 47,
"id": "08818c64",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'n_neighbors': 15}\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "# Your code here..."
+ "# Your code here...\n",
+ "grid_search = GridSearchCV(KNeighborsClassifier(), {'n_neighbors': list(range(1, 51))}, cv=10).fit(X_train, y_train); print(grid_search.best_params_)\n",
+ "plt.plot(range(1, 51), grid_search.cv_results_['mean_test_score'], marker='o'); plt.title('KNN Hyperparameter Tuning'); plt.xlabel('Number of Neighbors (K)'); plt.ylabel('10-Fold CV Accuracy'); plt.grid(True); plt.show();\n"
]
},
{
@@ -305,12 +689,21 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 42,
"id": "ffefa9f2",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.9333333333333333\n"
+ ]
+ }
+ ],
"source": [
- "# Your code here..."
+ "# Your code here...\n",
+ "print(accuracy_score(y_test, grid_search.best_estimator_.predict(X_test)))"
]
},
{
@@ -365,7 +758,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3.10.4",
+ "display_name": "lcr-env (3.11.15)",
"language": "python",
"name": "python3"
},
@@ -379,12 +772,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.19"
- },
- "vscode": {
- "interpreter": {
- "hash": "497a84dc8fec8cf8d24e7e87b6d954c9a18a327edc66feb9b9ea7e9e72cc5c7e"
- }
+ "version": "3.11.15"
}
},
"nbformat": 4,