File size: 41,211 Bytes
5879a10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Naive Bayes"
      ],
      "metadata": {
        "id": "MSLznnwzyf30"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Imports"
      ],
      "metadata": {
        "id": "JJocdeRnyi7R"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "import joblib\n",
        "import time\n",
        "import joblib\n",
        "\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "from sklearn.naive_bayes import MultinomialNB\n",
        "\n",
        "from sklearn.metrics import (\n",
        "    accuracy_score,\n",
        "    precision_score,\n",
        "    recall_score,\n",
        "    f1_score,\n",
        "    roc_auc_score,\n",
        "    confusion_matrix,\n",
        "    classification_report,\n",
        "    ConfusionMatrixDisplay\n",
        ")"
      ],
      "metadata": {
        "id": "-JY-1VcXyfky"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "tfidf = joblib.load(\"/content/tfidf_vectorizer.pkl\")\n",
        "\n",
        "x_train = joblib.load(\"/content/x_train.pkl\")\n",
        "x_test = joblib.load(\"/content/x_test.pkl\")\n",
        "\n",
        "y_train = joblib.load(\"/content/y_train.pkl\")\n",
        "y_test = joblib.load(\"/content/y_test.pkl\")"
      ],
      "metadata": {
        "id": "X3Guyq-0yfi3"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "print(x_train.shape)\n",
        "print(x_test.shape)\n",
        "print(y_train.shape)\n",
        "print(y_test.shape)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8Kal3VcNyfgu",
        "outputId": "be7488eb-f9d8-4fc9-aea5-68ca51143b6b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "(1274150,)\n",
            "(318538,)\n",
            "(1274150,)\n",
            "(318538,)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "x_train_tf = tfidf.transform(x_train)\n",
        "x_test_tf = tfidf.transform(x_test)"
      ],
      "metadata": {
        "id": "UMsjEOMHyfeq"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "print(x_train_tf.shape)\n",
        "print(x_test_tf.shape)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "N2dKQjHCyfci",
        "outputId": "efdf5778-1f8d-4e73-ca5e-660ebc1b7be8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "(1274150, 50000)\n",
            "(318538, 50000)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Model"
      ],
      "metadata": {
        "id": "bfLrH0Xx1gsx"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# MultinomialNB(\n",
        "#     alpha=1.0,         # Laplace smoothing\n",
        "#     fit_prior=True,    # Learn class priors from the data\n",
        "#     class_prior=None,  # Use learned priors\n",
        "#     force_alpha=True   # Keep alpha exactly as specified\n",
        "# )"
      ],
      "metadata": {
        "id": "KuB6E2rB1uwl"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "model_nb = MultinomialNB(\n",
        "    alpha=0.5,\n",
        "    fit_prior=True,\n",
        "    force_alpha=True\n",
        ")"
      ],
      "metadata": {
        "id": "NFcj_ni3yfaK"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "start = time.time()\n",
        "model_nb.fit(x_train_tf, y_train)\n",
        "end = time.time()\n",
        "\n",
        "print(f\"Training Time: {end-start:.2f} Seconds\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "oYdT3ympyfXq",
        "outputId": "89e1009f-11b2-4bfd-d83b-a6df9ca16d6e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training Time: 0.47 Seconds\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "start = time.time()\n",
        "y_pred = model_nb.predict(x_test_tf)\n",
        "end = time.time()\n",
        "\n",
        "print(f\"Prediction Time: {end-start:.2f} Seconds\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gX-AdTYuyfS6",
        "outputId": "6247a45d-0a85-4b01-943c-848b6e7c58bb"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Prediction Time: 0.10 Seconds\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "y_prob = model_nb.predict_proba(x_test_tf)[:, 1]\n",
        "print(y_prob)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "a09aIaMhyfQ-",
        "outputId": "ea183e61-3c81-461f-ef09-3c6059485c6d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[0.54817049 0.06469533 0.34074515 ... 0.2089416  0.17129996 0.54538567]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(f\"Accuracy : {accuracy_score(y_test, y_pred):.4f}\")\n",
        "print(f\"Precision: {precision_score(y_test, y_pred):.4f}\")\n",
        "print(f\"Recall   : {recall_score(y_test, y_pred):.4f}\")\n",
        "print(f\"F1 Score : {f1_score(y_test, y_pred):.4f}\")\n",
        "print(f\"ROC AUC  : {roc_auc_score(y_test, y_prob):.4f}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QxxBaJYRyfO5",
        "outputId": "1933723b-edbd-4c98-a0d9-b8f8f5d0b169"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy : 0.7783\n",
            "Precision: 0.7758\n",
            "Recall   : 0.7828\n",
            "F1 Score : 0.7793\n",
            "ROC AUC  : 0.8599\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Classification Report\n",
        "print(f\"Classification_Report: \\n \\n {classification_report(y_test, y_pred)}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1gzqBH3eyfMq",
        "outputId": "84ccdb5e-ec88-4138-e893-29989ef7c057"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Classification_Report: \n",
            " \n",
            "               precision    recall  f1-score   support\n",
            "\n",
            "           0       0.78      0.77      0.78    159267\n",
            "           1       0.78      0.78      0.78    159271\n",
            "\n",
            "    accuracy                           0.78    318538\n",
            "   macro avg       0.78      0.78      0.78    318538\n",
            "weighted avg       0.78      0.78      0.78    318538\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "ConfusionMatrixDisplay.from_predictions(\n",
        "    y_test,\n",
        "    y_pred,\n",
        "    cmap = \"Blues\"\n",
        ")\n",
        "\n",
        "plt.title(\"Naive Bayes (TF-IDF)\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 472
        },
        "id": "FobX3vh5yfKe",
        "outputId": "abad3989-abf5-48ee-b782-2ca46c080fc9"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "joblib.dump(model_nb, \"nb_model.pkl\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "K-dFZdMPyfIS",
        "outputId": "8cf13008-1aa4-4f37-b38b-ea806e3f81a2"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['nb_model.pkl']"
            ]
          },
          "metadata": {},
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "Rlef8KrxyfF6"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "XXxeY7UGyfDu"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "yO5A0pl4yfBe"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "ZYXAqhT6ye_H"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "DGPQS347ye6V"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "sN9W4zHDye4C"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "m916t_7Vye13"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "e7pQVYz4yezq"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "SGkiyLsFyexn"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "QdCjJEDfyevL"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "p_vI0y4yyesw"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "QSkaVZCQyeqz"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "83LWjID2yeoP"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "wrfh-veYyejx"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}