noshot 6.0.0__py3-none-any.whl → 7.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. noshot/data/ML TS XAI/ML/Rolls Royce AllinOne.ipynb +691 -0
  2. noshot/data/ML TS XAI/ML/Tamilan Code/1. EDA-PCA (Balance Scale Dataset).ipynb +147 -0
  3. noshot/data/ML TS XAI/ML/Tamilan Code/1. EDA-PCA (Rice Dataset).ipynb +181 -0
  4. noshot/data/ML TS XAI/ML/Tamilan Code/10. HMM Veterbi.ipynb +152 -0
  5. noshot/data/ML TS XAI/ML/Tamilan Code/2. KNN (Balance Scale Dataset).ipynb +117 -0
  6. noshot/data/ML TS XAI/ML/Tamilan Code/2. KNN (Iris Dataset).ipynb +156 -0
  7. noshot/data/ML TS XAI/ML/Tamilan Code/2. KNN (Sobar-72 Dataset).ipynb +215 -0
  8. noshot/data/ML TS XAI/ML/Tamilan Code/3. LDA (Balance Scale Dataset).ipynb +78 -0
  9. noshot/data/ML TS XAI/ML/Tamilan Code/3. LDA (NPHA Doctor Visits Dataset).ipynb +114 -0
  10. noshot/data/ML TS XAI/ML/Tamilan Code/4. Linear Regression (Machine Dataset).ipynb +115 -0
  11. noshot/data/ML TS XAI/ML/Tamilan Code/4. Linear Regression (Real Estate Dataset).ipynb +146 -0
  12. noshot/data/ML TS XAI/ML/Tamilan Code/5. Logistic Regression (Magic04 Dataset).ipynb +130 -0
  13. noshot/data/ML TS XAI/ML/Tamilan Code/5. Logistic Regression (Wine Dataset).ipynb +112 -0
  14. noshot/data/ML TS XAI/ML/Tamilan Code/6. Naive Bayes Classifier (Agaricus Lepiota Dataset).ipynb +118 -0
  15. noshot/data/ML TS XAI/ML/Tamilan Code/6. Naive Bayes Classifier (Wine Dataset).ipynb +89 -0
  16. noshot/data/ML TS XAI/ML/Tamilan Code/7. SVM (Rice Dataset).ipynb +120 -0
  17. noshot/data/ML TS XAI/ML/Tamilan Code/8. FeedForward NN (Sobar72 Dataset).ipynb +262 -0
  18. noshot/data/ML TS XAI/ML/Tamilan Code/9. CNN (Cifar10 Dataset).ipynb +156 -0
  19. noshot/data/ML TS XAI/ML/Whitefang Code/1. PCA.ipynb +162 -0
  20. noshot/data/ML TS XAI/ML/Whitefang Code/10. CNN.ipynb +100 -0
  21. noshot/data/ML TS XAI/ML/Whitefang Code/11. HMM.ipynb +336 -0
  22. noshot/data/ML TS XAI/ML/Whitefang Code/2. KNN.ipynb +149 -0
  23. noshot/data/ML TS XAI/ML/Whitefang Code/3. LDA.ipynb +132 -0
  24. noshot/data/ML TS XAI/ML/Whitefang Code/4. Linear Regression.ipynb +86 -0
  25. noshot/data/ML TS XAI/ML/Whitefang Code/5. Logistic Regression.ipynb +115 -0
  26. noshot/data/ML TS XAI/ML/Whitefang Code/6. Naive Bayes (Titanic).ipynb +196 -0
  27. noshot/data/ML TS XAI/ML/Whitefang Code/6. Naive Bayes (Wine).ipynb +98 -0
  28. noshot/data/ML TS XAI/ML/Whitefang Code/7. SVM Linear.ipynb +109 -0
  29. noshot/data/ML TS XAI/ML/Whitefang Code/8. SVM Non-Linear.ipynb +195 -0
  30. noshot/data/ML TS XAI/ML/Whitefang Code/9. FNN With Regularization.ipynb +189 -0
  31. noshot/data/ML TS XAI/ML/Whitefang Code/9. FNN Without Regularization.ipynb +197 -0
  32. noshot/data/ML TS XAI/ML/Whitefang Code/All in One Lab CIA 1 Q.ipynb +1087 -0
  33. {noshot-6.0.0.dist-info → noshot-7.0.0.dist-info}/METADATA +1 -1
  34. noshot-7.0.0.dist-info/RECORD +41 -0
  35. {noshot-6.0.0.dist-info → noshot-7.0.0.dist-info}/WHEEL +1 -1
  36. noshot/data/ML TS XAI/XAI/Q1.ipynb +0 -377
  37. noshot/data/ML TS XAI/XAI/Q2.ipynb +0 -362
  38. noshot/data/ML TS XAI/XAI/Q3.ipynb +0 -637
  39. noshot/data/ML TS XAI/XAI/Q4.ipynb +0 -206
  40. noshot/data/ML TS XAI/XAI/Q5.ipynb +0 -1018
  41. noshot-6.0.0.dist-info/RECORD +0 -14
  42. {noshot-6.0.0.dist-info → noshot-7.0.0.dist-info}/licenses/LICENSE.txt +0 -0
  43. {noshot-6.0.0.dist-info → noshot-7.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,147 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "b96a1a1c-b14e-409e-ab95-075ba7b80df3",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "import pandas as pd\n",
11
+ "import numpy as np\n",
12
+ "import seaborn as sns\n",
13
+ "import matplotlib.pyplot as plt\n",
14
+ "from sklearn.preprocessing import StandardScaler\n",
15
+ "from sklearn.decomposition import PCA\n",
16
+ "\n",
17
+ "import warnings\n",
18
+ "warnings.filterwarnings('ignore')"
19
+ ]
20
+ },
21
+ {
22
+ "cell_type": "code",
23
+ "execution_count": null,
24
+ "id": "a27b3cce-5a43-4443-a2c0-964a15d4d5fc",
25
+ "metadata": {},
26
+ "outputs": [],
27
+ "source": [
28
+ "cols = ['class name', 'left-weight', 'left-distance', 'right-weight', 'right-distance']\n",
29
+ "df = pd.read_table('data/balance-scale.txt', delimiter=',', names=cols)\n",
30
+ "print(\"Shape:\", df.shape)\n",
31
+ "df.head()"
32
+ ]
33
+ },
34
+ {
35
+ "cell_type": "code",
36
+ "execution_count": null,
37
+ "id": "b9f866da-69f2-44d9-a628-431cdb81d41e",
38
+ "metadata": {},
39
+ "outputs": [],
40
+ "source": [
41
+ "df.describe()"
42
+ ]
43
+ },
44
+ {
45
+ "cell_type": "code",
46
+ "execution_count": null,
47
+ "id": "f23c78cb-422f-492d-ab8c-00ba1ac8a4b2",
48
+ "metadata": {},
49
+ "outputs": [],
50
+ "source": [
51
+ "df.info()"
52
+ ]
53
+ },
54
+ {
55
+ "cell_type": "code",
56
+ "execution_count": null,
57
+ "id": "d2a5b059-df8f-4495-bee8-57031cce0a78",
58
+ "metadata": {},
59
+ "outputs": [],
60
+ "source": [
61
+ "sns.countplot(df, x='class name', hue='class name')\n",
62
+ "plt.title(\"Count Plot ['B', 'R', 'L']\")\n",
63
+ "plt.show()"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "id": "5da4b529-7f9f-4fa4-b251-7daf2a285c15",
70
+ "metadata": {},
71
+ "outputs": [],
72
+ "source": [
73
+ "features = ['left-weight', 'left-distance', 'right-weight', 'right-distance']\n",
74
+ "x = df.loc[:, features]\n",
75
+ "y = df.loc[:, 'class name']"
76
+ ]
77
+ },
78
+ {
79
+ "cell_type": "code",
80
+ "execution_count": null,
81
+ "id": "bacac77a-5b5f-480c-8e4d-8172980baea7",
82
+ "metadata": {},
83
+ "outputs": [],
84
+ "source": [
85
+ "x = StandardScaler().fit_transform(x)\n",
86
+ "pca = PCA(n_components=2)\n",
87
+ "pct = pca.fit_transform(x)"
88
+ ]
89
+ },
90
+ {
91
+ "cell_type": "code",
92
+ "execution_count": null,
93
+ "id": "ffdcdf85-56c8-4b02-bad8-05f9654805ef",
94
+ "metadata": {},
95
+ "outputs": [],
96
+ "source": [
97
+ "principal_df = pd.DataFrame(pct, columns=['pc1', 'pc2'])\n",
98
+ "principal_df['class name'] = df['class name']\n",
99
+ "principal_df.head()"
100
+ ]
101
+ },
102
+ {
103
+ "cell_type": "code",
104
+ "execution_count": null,
105
+ "id": "db3dae54-3134-4d41-998e-0cf46ae16714",
106
+ "metadata": {},
107
+ "outputs": [],
108
+ "source": [
109
+ "fig = plt.figure(figsize=(8,8))\n",
110
+ "ax = fig.add_subplot(1, 1, 1)\n",
111
+ "\n",
112
+ "targets = ['L','B','R']\n",
113
+ "colors = ['r', 'g','b']\n",
114
+ "for target, color in zip(targets, colors):\n",
115
+ " selected = principal_df[principal_df['class name'] == target]\n",
116
+ " ax.scatter(selected['pc1'], selected['pc2'], c=color, s=50)\n",
117
+ "\n",
118
+ "ax.set_xlabel('Principal Component 1')\n",
119
+ "ax.set_ylabel('Principal Component 2')\n",
120
+ "ax.set_title('2 component PCA')\n",
121
+ "ax.legend(targets)\n",
122
+ "ax.grid()"
123
+ ]
124
+ }
125
+ ],
126
+ "metadata": {
127
+ "kernelspec": {
128
+ "display_name": "Python 3 (ipykernel)",
129
+ "language": "python",
130
+ "name": "python3"
131
+ },
132
+ "language_info": {
133
+ "codemirror_mode": {
134
+ "name": "ipython",
135
+ "version": 3
136
+ },
137
+ "file_extension": ".py",
138
+ "mimetype": "text/x-python",
139
+ "name": "python",
140
+ "nbconvert_exporter": "python",
141
+ "pygments_lexer": "ipython3",
142
+ "version": "3.12.4"
143
+ }
144
+ },
145
+ "nbformat": 4,
146
+ "nbformat_minor": 5
147
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "d27dd480-bff5-4179-8b5d-145b15fe2527",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "import numpy as np\n",
11
+ "import pandas as pd\n",
12
+ "import seaborn as sns\n",
13
+ "import scipy\n",
14
+ "import matplotlib.pyplot as plt"
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "code",
19
+ "execution_count": null,
20
+ "id": "c34c5236-de26-47a7-b047-c084519f6ef7",
21
+ "metadata": {},
22
+ "outputs": [],
23
+ "source": [
24
+ "data, _ = scipy.io.arff.loadarff('data/rice.arff')\n",
25
+ "df = pd.DataFrame(data)\n",
26
+ "print(\"Shape:\", df.shape)\n",
27
+ "df.head()"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "code",
32
+ "execution_count": null,
33
+ "id": "9ef13fe2-6f7f-4e9e-97bf-f44c0b10694e",
34
+ "metadata": {},
35
+ "outputs": [],
36
+ "source": [
37
+ "df.describe()"
38
+ ]
39
+ },
40
+ {
41
+ "cell_type": "code",
42
+ "execution_count": null,
43
+ "id": "0a51ae34-5fa4-4f78-a08c-de89bcc1f6b2",
44
+ "metadata": {},
45
+ "outputs": [],
46
+ "source": [
47
+ "df.info()"
48
+ ]
49
+ },
50
+ {
51
+ "cell_type": "code",
52
+ "execution_count": null,
53
+ "id": "3a30c508-273f-46cd-8ecd-8361b255488b",
54
+ "metadata": {},
55
+ "outputs": [],
56
+ "source": [
57
+ "df.isnull().sum()"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": null,
63
+ "id": "f0651a71-0bc1-489e-ad5f-7b080a9cb978",
64
+ "metadata": {},
65
+ "outputs": [],
66
+ "source": [
67
+ "sns.countplot(df, x='Class', hue='Class')\n",
68
+ "plt.title(\"Class Distribution\")\n",
69
+ "plt.show()"
70
+ ]
71
+ },
72
+ {
73
+ "cell_type": "code",
74
+ "execution_count": null,
75
+ "id": "e2d1c93f-e097-4b08-b9ff-48c7d5fd9659",
76
+ "metadata": {},
77
+ "outputs": [],
78
+ "source": [
79
+ "print(\"Mean of Features\")\n",
80
+ "df.iloc[:, :-1].mean()"
81
+ ]
82
+ },
83
+ {
84
+ "cell_type": "code",
85
+ "execution_count": null,
86
+ "id": "0977bb62-192e-43f4-8cd9-e054ea3526b9",
87
+ "metadata": {},
88
+ "outputs": [],
89
+ "source": [
90
+ "cov = df.iloc[:, :-1].cov().round(3)\n",
91
+ "print(\"Covariance Matrix\")\n",
92
+ "cov"
93
+ ]
94
+ },
95
+ {
96
+ "cell_type": "code",
97
+ "execution_count": null,
98
+ "id": "e2862d9a-76b9-4367-a135-0fc36ae60478",
99
+ "metadata": {},
100
+ "outputs": [],
101
+ "source": [
102
+ "eigen_vals, eigen_vecs = np.linalg.eig(cov)\n",
103
+ "mapping = {round(eigen_vals[i], 2): eigen_vecs[:, i].round(2) \n",
104
+ " for i in range(len(eigen_vals))}\n",
105
+ "print(\"Eigen Value-Vector Pairs:\")\n",
106
+ "mapping"
107
+ ]
108
+ },
109
+ {
110
+ "cell_type": "code",
111
+ "execution_count": null,
112
+ "id": "06a3c671-6cae-44c7-9960-56702042c0e5",
113
+ "metadata": {},
114
+ "outputs": [],
115
+ "source": [
116
+ "n = 2\n",
117
+ "sorted_eigen_vals = sorted(mapping.keys(), reverse=True)\n",
118
+ "top_eigen_vals = sorted_eigen_vals[:n]\n",
119
+ "top_eigen_vals"
120
+ ]
121
+ },
122
+ {
123
+ "cell_type": "code",
124
+ "execution_count": null,
125
+ "id": "6473c348-871e-428d-a3d6-7942fc0df706",
126
+ "metadata": {},
127
+ "outputs": [],
128
+ "source": [
129
+ "projection_matrix = np.array([mapping[val] for val in top_eigen_vals]).T\n",
130
+ "projection_matrix"
131
+ ]
132
+ },
133
+ {
134
+ "cell_type": "code",
135
+ "execution_count": null,
136
+ "id": "6014c705-cb9a-470f-905f-ec05eb5f89f9",
137
+ "metadata": {},
138
+ "outputs": [],
139
+ "source": [
140
+ "X = df.iloc[:, :-1].values\n",
141
+ "reduced_data = X.dot(projection_matrix)\n",
142
+ "reduced_df = pd.DataFrame(reduced_data, columns=[f'PC{i+1}' for i in range(n)])\n",
143
+ "reduced_df['Class'] = df['Class'].values\n",
144
+ "reduced_df.head()"
145
+ ]
146
+ },
147
+ {
148
+ "cell_type": "code",
149
+ "execution_count": null,
150
+ "id": "f53faa36-3044-4a48-9512-f7bc947bd9ba",
151
+ "metadata": {},
152
+ "outputs": [],
153
+ "source": [
154
+ "sns.scatterplot(data=reduced_df, x='PC1', y='PC2', hue='Class')\n",
155
+ "plt.title('Principle Component Analysis')\n",
156
+ "plt.show()"
157
+ ]
158
+ }
159
+ ],
160
+ "metadata": {
161
+ "kernelspec": {
162
+ "display_name": "Python 3 (ipykernel)",
163
+ "language": "python",
164
+ "name": "python3"
165
+ },
166
+ "language_info": {
167
+ "codemirror_mode": {
168
+ "name": "ipython",
169
+ "version": 3
170
+ },
171
+ "file_extension": ".py",
172
+ "mimetype": "text/x-python",
173
+ "name": "python",
174
+ "nbconvert_exporter": "python",
175
+ "pygments_lexer": "ipython3",
176
+ "version": "3.12.4"
177
+ }
178
+ },
179
+ "nbformat": 4,
180
+ "nbformat_minor": 5
181
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "transition = {\"AtoA\": 0.7, \"AtoB\": 0.3, \"BtoA\": 0.5, \"BtoB\": 0.5}\n",
10
+ "emission = {\"A\": {\"S1\": 0.6, \"S2\": 0.1, \"S3\": 0.3}, \"B\": {\"S1\": 0.1, \"S2\": 0.7, \"S3\": 0.2}}\n",
11
+ "pi = (1, 0)\n",
12
+ "\n",
13
+ "a, b = pi\n",
14
+ "alpha1, alpha2 = [a], [b]\n",
15
+ "\n",
16
+ "for obs in [\"S3\", \"S2\", \"S1\"]:\n",
17
+ " a_new = (a * transition[\"AtoA\"] * emission[\"A\"][obs] + \n",
18
+ " b * transition[\"BtoA\"] * emission[\"B\"][obs])\n",
19
+ " b_new = (a * transition[\"AtoB\"] * emission[\"A\"][obs] + \n",
20
+ " b * transition[\"BtoB\"] * emission[\"B\"][obs])\n",
21
+ " a, b = a_new, b_new\n",
22
+ " alpha1.append(a)\n",
23
+ " alpha2.append(b)\n",
24
+ " if obs == \"S1\":\n",
25
+ " print(\"Using Forward Chaining:\", round(a + b, 4))\n",
26
+ "\n",
27
+ "print(alpha1, \"\\n\", alpha2)\n"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "code",
32
+ "execution_count": null,
33
+ "metadata": {},
34
+ "outputs": [],
35
+ "source": [
36
+ "transition = {\"AtoA\": 0.7, \"AtoB\": 0.3, \"BtoA\": 0.5, \"BtoB\": 0.5}\n",
37
+ "emission = {\"A\": {\"S1\": 0.6, \"S2\": 0.1, \"S3\": 0.3}, \"B\": {\"S1\": 0.1, \"S2\": 0.7, \"S3\": 0.2}}\n",
38
+ "pi = (1, 1)\n",
39
+ "\n",
40
+ "a, b = pi\n",
41
+ "beta1, beta2 = [], []\n",
42
+ "\n",
43
+ "for obs in reversed([\"S3\", \"S2\", \"S1\"]):\n",
44
+ " a_new = (a * transition[\"AtoA\"] * emission[\"A\"][obs] +\n",
45
+ " b * transition[\"AtoB\"] * emission[\"A\"][obs])\n",
46
+ " b_new = (a * transition[\"BtoA\"] * emission[\"B\"][obs] +\n",
47
+ " b * transition[\"BtoB\"] * emission[\"B\"][obs])\n",
48
+ " a, b = a_new, b_new\n",
49
+ " beta1.append(a)\n",
50
+ " beta2.append(b)\n",
51
+ " if obs == \"S3\":\n",
52
+ " print(\"Using Backward Chaining:\", round(a, 4))\n",
53
+ "\n",
54
+ "print(beta1, \"\\n\", beta2)"
55
+ ]
56
+ },
57
+ {
58
+ "cell_type": "code",
59
+ "execution_count": null,
60
+ "metadata": {},
61
+ "outputs": [],
62
+ "source": [
63
+ "transition = {\"AtoA\": 0.7, \"AtoB\": 0.3, \"BtoA\": 0.5, \"BtoB\": 0.5}\n",
64
+ "emission = {\"A\": {\"S1\": 0.6, \"S2\": 0.1, \"S3\": 0.3}, \"B\": {\"S1\": 0.1, \"S2\": 0.7, \"S3\": 0.2}}\n",
65
+ "pi = (1, 0)\n",
66
+ "\n",
67
+ "a, b = pi\n",
68
+ "delta1, delta2, chi = [a], [b], []\n",
69
+ "\n",
70
+ "for obs in [\"S3\", \"S2\", \"S1\"]:\n",
71
+ " a_new = max(a * transition[\"AtoA\"] * emission[\"A\"][obs],\n",
72
+ " b * transition[\"BtoA\"] * emission[\"B\"][obs])\n",
73
+ " b_new = max(a * transition[\"AtoB\"] * emission[\"A\"][obs],\n",
74
+ " b * transition[\"BtoB\"] * emission[\"B\"][obs])\n",
75
+ " \n",
76
+ " chi.append('A' if a_new > b_new else 'B')\n",
77
+ " a, b = a_new, b_new\n",
78
+ " delta1.append(a)\n",
79
+ " delta2.append(b)\n",
80
+ "\n",
81
+ " if obs == \"S1\":\n",
82
+ " print(\"Using Viterbi Algorithm:\", round(max(a, b), 4))\n",
83
+ " print(\"Best Sequence:\")\n",
84
+ " print('->'.join(chi + [chi[-1]])) # printing path\n",
85
+ "\n",
86
+ "print(delta1)\n",
87
+ "print(delta2)"
88
+ ]
89
+ },
90
+ {
91
+ "cell_type": "code",
92
+ "execution_count": null,
93
+ "metadata": {
94
+ "colab": {
95
+ "base_uri": "https://localhost:8080/",
96
+ "height": 513
97
+ },
98
+ "id": "qBU_NokB_679",
99
+ "outputId": "d3b086cb-92d6-4941-de26-137888b1a2d1"
100
+ },
101
+ "outputs": [],
102
+ "source": [
103
+ "import networkx as nx\n",
104
+ "import matplotlib.pyplot as plt\n",
105
+ "\n",
106
+ "states = ['A', 'B']\n",
107
+ "observations = ['S1', 'S2', 'S3']\n",
108
+ "\n",
109
+ "graph = nx.DiGraph()\n",
110
+ "\n",
111
+ "for from_state in states:\n",
112
+ " for to_state in states:\n",
113
+ " graph.add_edge(from_state, to_state, weight=transition[from_state + 'to' + to_state],\n",
114
+ " label=str(transition[from_state + 'to' + to_state]))\n",
115
+ " for obs in observations:\n",
116
+ " graph.add_edge(from_state, obs, weight=emission[from_state][obs],\n",
117
+ " label=str(emission[from_state][obs]), style='dashed')\n",
118
+ "\n",
119
+ "pos = nx.spring_layout(graph)\n",
120
+ "nx.draw(graph, pos, with_labels=True, node_size=1500, node_color=\"skyblue\", font_size=12, font_weight='bold')\n",
121
+ "nx.draw_networkx_edge_labels(graph, pos, edge_labels=nx.get_edge_attributes(graph, 'label'), font_size=10)\n",
122
+ "\n",
123
+ "plt.title(\"Hidden Markov Model\")\n",
124
+ "plt.show()"
125
+ ]
126
+ }
127
+ ],
128
+ "metadata": {
129
+ "colab": {
130
+ "provenance": []
131
+ },
132
+ "kernelspec": {
133
+ "display_name": "Python 3 (ipykernel)",
134
+ "language": "python",
135
+ "name": "python3"
136
+ },
137
+ "language_info": {
138
+ "codemirror_mode": {
139
+ "name": "ipython",
140
+ "version": 3
141
+ },
142
+ "file_extension": ".py",
143
+ "mimetype": "text/x-python",
144
+ "name": "python",
145
+ "nbconvert_exporter": "python",
146
+ "pygments_lexer": "ipython3",
147
+ "version": "3.12.4"
148
+ }
149
+ },
150
+ "nbformat": 4,
151
+ "nbformat_minor": 4
152
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "b4a8b5dc",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "import numpy as np\n",
11
+ "import pandas as pd\n",
12
+ "import matplotlib.pyplot as plt\n",
13
+ "import sklearn\n",
14
+ "from sklearn.neighbors import KNeighborsClassifier\n",
15
+ "from sklearn.model_selection import train_test_split\n",
16
+ "from sklearn import metrics\n",
17
+ "from sklearn.preprocessing import StandardScaler"
18
+ ]
19
+ },
20
+ {
21
+ "cell_type": "code",
22
+ "execution_count": null,
23
+ "id": "1c308767",
24
+ "metadata": {},
25
+ "outputs": [],
26
+ "source": [
27
+ "cols = ['class name','left-weight','left-distance','right-weight','right-distance']\n",
28
+ "df = pd.read_csv('data/balance-scale.txt', delimiter=',', names=cols)\n",
29
+ "print(\"Shape:\", df.shape)\n",
30
+ "df.head()"
31
+ ]
32
+ },
33
+ {
34
+ "cell_type": "code",
35
+ "execution_count": null,
36
+ "id": "c5dc6788-f131-4b3e-8b39-0f83c117e2cd",
37
+ "metadata": {},
38
+ "outputs": [],
39
+ "source": [
40
+ "features = ['left-weight', 'left-distance', 'right-weight', 'right-distance']\n",
41
+ "x = df.loc[:, features]\n",
42
+ "y = df.loc[:, 'class name']"
43
+ ]
44
+ },
45
+ {
46
+ "cell_type": "code",
47
+ "execution_count": null,
48
+ "id": "59450a6f-db40-4b8c-b294-d427f0792c26",
49
+ "metadata": {},
50
+ "outputs": [],
51
+ "source": [
52
+ "x = StandardScaler().fit_transform(x)\n",
53
+ "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.4, \n",
54
+ " random_state=4)\n",
55
+ "print (X_train.shape)\n",
56
+ "print (X_test.shape)\n",
57
+ "knn = KNeighborsClassifier(n_neighbors=15)\n",
58
+ "knn.fit(X_train, y_train) "
59
+ ]
60
+ },
61
+ {
62
+ "cell_type": "code",
63
+ "execution_count": null,
64
+ "id": "22e96c2a",
65
+ "metadata": {},
66
+ "outputs": [],
67
+ "source": [
68
+ "y_pred = knn.predict(np.array([1,1,1,1]).reshape(1, -1))[0]\n",
69
+ "print(\"Class Predicted [1,1,1,1]:\", y_pred)"
70
+ ]
71
+ },
72
+ {
73
+ "cell_type": "code",
74
+ "execution_count": null,
75
+ "id": "366c003d",
76
+ "metadata": {},
77
+ "outputs": [],
78
+ "source": [
79
+ "y_pred = knn.predict(X_test)\n",
80
+ "print(\"Accuracy:\", metrics.accuracy_score(y_test, y_pred))"
81
+ ]
82
+ },
83
+ {
84
+ "cell_type": "code",
85
+ "execution_count": null,
86
+ "id": "517c6e56-afc6-481c-a48c-b1a0435537bd",
87
+ "metadata": {},
88
+ "outputs": [],
89
+ "source": [
90
+ "cm = metrics.confusion_matrix(y_test, knn.predict(X_test))\n",
91
+ "metrics.ConfusionMatrixDisplay(cm, display_labels=['B','L','R']).plot()\n",
92
+ "plt.show()"
93
+ ]
94
+ }
95
+ ],
96
+ "metadata": {
97
+ "kernelspec": {
98
+ "display_name": "Python 3 (ipykernel)",
99
+ "language": "python",
100
+ "name": "python3"
101
+ },
102
+ "language_info": {
103
+ "codemirror_mode": {
104
+ "name": "ipython",
105
+ "version": 3
106
+ },
107
+ "file_extension": ".py",
108
+ "mimetype": "text/x-python",
109
+ "name": "python",
110
+ "nbconvert_exporter": "python",
111
+ "pygments_lexer": "ipython3",
112
+ "version": "3.12.4"
113
+ }
114
+ },
115
+ "nbformat": 4,
116
+ "nbformat_minor": 5
117
+ }