Spaces:
Sleeping
Sleeping
File size: 111,353 Bytes
0403b6d |
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 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Fake News Detection: Baseline vs. BERT\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# (1) Install dependencies (run once at the top of the notebook)\n",
"!pip install -q transformers datasets scikit-learn torch matplotlib seaborn\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using device: cpu\n"
]
}
],
"source": [
"# (2) Imports and Device Setup\n",
"import os\n",
"import pandas as pd\n",
"import torch\n",
"from datasets import load_dataset\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.metrics import (\n",
" accuracy_score, \n",
" f1_score, \n",
" classification_report, \n",
" confusion_matrix, \n",
" roc_curve, \n",
" auc\n",
")\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from torch.utils.data import DataLoader\n",
"from transformers import AutoTokenizer, AutoModelForSequenceClassification\n",
"\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"print(\"Using device:\", device)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "4d58cf7fc6014fffa761569ffe0a9923",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Downloading data: 0%| | 0.00/1.01M [00:00<?, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "2388c0d0487c4dd0821bc7628d3ca4c2",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Generating train split: 0%| | 0/10269 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "2a171d7e84dc42b88bccd30a8a30d691",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Generating test split: 0%| | 0/1283 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "12e35705877e4d01a92aa217fceb2f9a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Generating validation split: 0%| | 0/1284 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"▶︎ Train size: 8215 Test size: 2054\n",
"▶︎ Label counts in train: {1: 4869, 0: 3346}\n",
"▶︎ Label counts in test: {1: 1218, 0: 836}\n"
]
}
],
"source": [
"# (3) Load & Binarize the LIAR Dataset\n",
"# We’ll use only the “train” split and perform an 80/20 train/test split ourselves.\n",
"\n",
"raw = load_dataset(\"liar\", cache_dir=\"/content/hf_cache\")\n",
"df_all = pd.DataFrame(raw[\"train\"])\n",
"\n",
"# Map label IDs 0,1,2 → fake (1); 3,4,5 → real (0)\n",
"def binarize(label_id):\n",
" return int(label_id <= 2)\n",
"\n",
"df_all[\"label_bin\"] = df_all[\"label\"].map(binarize)\n",
"\n",
"# 80/20 stratified split on label_bin\n",
"X_train, X_test, y_train, y_test = train_test_split(\n",
" df_all[\"statement\"],\n",
" df_all[\"label_bin\"],\n",
" test_size=0.20,\n",
" random_state=42,\n",
" stratify=df_all[\"label_bin\"]\n",
")\n",
"\n",
"print(f\"▶︎ Train size: {len(X_train)} Test size: {len(X_test)}\")\n",
"print(\"▶︎ Label counts in train:\", y_train.value_counts().to_dict())\n",
"print(\"▶︎ Label counts in test: \", y_test.value_counts().to_dict())\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== Baseline (TF‑IDF + LR) ===\n",
"Accuracy: 0.5312\n",
"F1 Score: 0.5928\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 0.43 0.47 0.45 836\n",
" 1 0.61 0.58 0.59 1218\n",
"\n",
" accuracy 0.53 2054\n",
" macro avg 0.52 0.52 0.52 2054\n",
"weighted avg 0.54 0.53 0.53 2054\n",
"\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 500x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# (4) Baseline: TF‑IDF + Logistic Regression\n",
"\n",
"baseline_pipe = Pipeline([\n",
" (\"tfidf\", TfidfVectorizer(\n",
" stop_words=\"english\",\n",
" max_features=5000,\n",
" ngram_range=(1, 2)\n",
" )),\n",
" (\"clf\", LogisticRegression(\n",
" max_iter=1000,\n",
" class_weight=\"balanced\"\n",
" ))\n",
"])\n",
"\n",
"baseline_pipe.fit(X_train, y_train)\n",
"y_pred_baseline = baseline_pipe.predict(X_test)\n",
"\n",
"acc_baseline = accuracy_score(y_test, y_pred_baseline)\n",
"f1_baseline = f1_score(y_test, y_pred_baseline)\n",
"probs_baseline = baseline_pipe.predict_proba(X_test)[:, 1]\n",
"\n",
"print(\"=== Baseline (TF‑IDF + LR) ===\")\n",
"print(f\"Accuracy: {acc_baseline:.4f}\")\n",
"print(f\"F1 Score: {f1_baseline:.4f}\\n\")\n",
"print(\"Classification Report:\")\n",
"print(classification_report(y_test, y_pred_baseline))\n",
"\n",
"# Baseline confusion matrix\n",
"cm_base = confusion_matrix(y_test, y_pred_baseline)\n",
"plt.figure(figsize=(5,4))\n",
"sns.heatmap(\n",
" cm_base,\n",
" annot=True,\n",
" fmt=\"d\",\n",
" cmap=\"Blues\",\n",
" xticklabels=[\"Real\", \"Fake\"],\n",
" yticklabels=[\"Real\", \"Fake\"]\n",
")\n",
"plt.title(\"Confusion Matrix: Baseline\")\n",
"plt.xlabel(\"Predicted\")\n",
"plt.ylabel(\"Actual\")\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "3b741441dfd742dab67288cb96bb39cf",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map: 0%| | 0/8215 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5f4e19c7cb614004a2b9220510e8928c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map: 0%| | 0/2054 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "919b27a90c324845b0cec283bcd4d27e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map: 0%| | 0/8215 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9bb1cc4385a145e996c4983200f1c09e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map: 0%| | 0/2054 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== BERT (fine‑tuned) ===\n",
"Accuracy: 0.5779\n",
"F1 Score: 0.6742\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 0.48 0.34 0.40 849\n",
" 1 0.62 0.74 0.67 1205\n",
"\n",
" accuracy 0.58 2054\n",
" macro avg 0.55 0.54 0.54 2054\n",
"weighted avg 0.56 0.58 0.56 2054\n",
"\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 500x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# (5) Load & Evaluate Fine‑Tuned BERT\n",
"\n",
"# 5.1 Load tokenizer + model from your local folder\n",
"model_dir = \"../models/bert-fake-news\"\n",
"tokenizer = AutoTokenizer.from_pretrained(model_dir)\n",
"model = AutoModelForSequenceClassification.from_pretrained(model_dir)\n",
"model = model.to(device)\n",
"model.eval()\n",
"\n",
"# 5.2 Tokenize test set\n",
"def tokenize_fn(batch):\n",
" return tokenizer(\n",
" batch[\"statement\"],\n",
" padding=\"max_length\",\n",
" truncation=True,\n",
" max_length=128\n",
" )\n",
"\n",
"# Recreate the dataset splits for BERT evaluation\n",
"splits = raw[\"train\"].train_test_split(test_size=0.20, seed=42)\n",
"splits[\"train\"] = splits[\"train\"].map(lambda x: {\"label\": int(x[\"label\"] <= 2)})\n",
"splits[\"test\"] = splits[\"test\"].map(lambda x: {\"label\": int(x[\"label\"] <= 2)})\n",
"\n",
"# Apply tokenization\n",
"tokenized = splits.map(tokenize_fn, batched=True)\n",
"tokenized.set_format(\"torch\", columns=[\"input_ids\", \"attention_mask\", \"label\"])\n",
"\n",
"# 5.3 Run inference on test set\n",
"test_loader = DataLoader(tokenized[\"test\"], batch_size=8)\n",
"all_preds, all_probs, all_labels = [], [], []\n",
"\n",
"with torch.no_grad():\n",
" for batch in test_loader:\n",
" ids = batch[\"input_ids\"].to(device)\n",
" mask = batch[\"attention_mask\"].to(device)\n",
" labels = batch[\"label\"].to(device)\n",
"\n",
" outputs = model(ids, attention_mask=mask)\n",
" logits = outputs.logits\n",
" probs = torch.softmax(logits, dim=-1)\n",
" preds = torch.argmax(probs, dim=-1)\n",
"\n",
" all_preds.extend(preds.cpu().tolist())\n",
" # take probability of class “1” (fake)\n",
" all_probs.extend(probs[:, 1].cpu().tolist())\n",
" all_labels.extend(labels.cpu().tolist())\n",
"\n",
"acc_bert = accuracy_score(all_labels, all_preds)\n",
"f1_bert = f1_score(all_labels, all_preds)\n",
"\n",
"print(\"=== BERT (fine‑tuned) ===\")\n",
"print(f\"Accuracy: {acc_bert:.4f}\")\n",
"print(f\"F1 Score: {f1_bert:.4f}\\n\")\n",
"print(\"Classification Report:\")\n",
"print(classification_report(all_labels, all_preds))\n",
"\n",
"# BERT confusion matrix\n",
"cm_bert = confusion_matrix(all_labels, all_preds)\n",
"plt.figure(figsize=(5,4))\n",
"sns.heatmap(\n",
" cm_bert,\n",
" annot=True,\n",
" fmt=\"d\",\n",
" cmap=\"Greens\",\n",
" xticklabels=[\"Real\", \"Fake\"],\n",
" yticklabels=[\"Real\", \"Fake\"]\n",
")\n",
"plt.title(\"Confusion Matrix: BERT\")\n",
"plt.xlabel(\"Predicted\")\n",
"plt.ylabel(\"Actual\")\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 600x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# (6) ROC Curves & AUC\n",
"\n",
"fpr_base, tpr_base, _ = roc_curve(y_test, probs_baseline)\n",
"auc_base = auc(fpr_base, tpr_base)\n",
"\n",
"fpr_bert, tpr_bert, _ = roc_curve(all_labels, all_probs)\n",
"auc_bert = auc(fpr_bert, tpr_bert)\n",
"\n",
"plt.figure(figsize=(6,5))\n",
"plt.plot(fpr_base, tpr_base, label=f\"Baseline (AUC = {auc_base:.2f})\", linestyle=\"--\")\n",
"plt.plot(fpr_bert, tpr_bert, label=f\"BERT (AUC = {auc_bert:.2f})\")\n",
"plt.plot([0,1], [0,1], color=\"gray\", linestyle=\":\")\n",
"plt.xlabel(\"False Positive Rate\")\n",
"plt.ylabel(\"True Positive Rate\")\n",
"plt.title(\"ROC Curve: Baseline vs. BERT\")\n",
"plt.legend(loc=\"lower right\")\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Model</th>\n",
" <th>Accuracy</th>\n",
" <th>F1</th>\n",
" <th>AUC</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>TF‑IDF + LR</td>\n",
" <td>0.531159</td>\n",
" <td>0.592812</td>\n",
" <td>0.544498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>BERT (fine‑tuned)</td>\n",
" <td>0.577897</td>\n",
" <td>0.674183</td>\n",
" <td>0.566729</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Model Accuracy F1 AUC\n",
"0 TF‑IDF + LR 0.531159 0.592812 0.544498\n",
"1 BERT (fine‑tuned) 0.577897 0.674183 0.566729"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (7) Side‑by‑Side Comparison Table\n",
"\n",
"comparison = pd.DataFrame([\n",
" {\"Model\": \"TF‑IDF + LR\", \"Accuracy\": acc_baseline, \"F1\": f1_baseline, \"AUC\": auc_base},\n",
" {\"Model\": \"BERT (fine‑tuned)\", \"Accuracy\": acc_bert, \"F1\": f1_bert, \"AUC\": auc_bert}\n",
"])\n",
"\n",
"comparison\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"\n",
"## 📋 Final Summary\n",
"\n",
"**Baseline (TF‑IDF + Logistic Regression)** \n",
"- Accuracy: 0.531 \n",
"- F1 Score: 0.593 \n",
"- AUC: 0.544 \n",
"\n",
"**BERT (fine‑tuned)** \n",
"- Accuracy: 0.578 \n",
"- F1 Score: 0.674 \n",
"- AUC: 0.567 \n",
"\n",
"**Key Observation:** \n",
"> BERT’s contextual embeddings led to an ~0.081 absolute improvement in F1 over the TF‑IDF baseline, at the cost of roughly 10–15× slower inference on CPU. For production, consider DistilBERT or quantized BERT to balance speed vs. accuracy.\n"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.display import Markdown, display\n",
"\n",
"display(Markdown(f\"\"\"\n",
"## Final Summary\n",
"\n",
"**Baseline (TF‑IDF + Logistic Regression)** \n",
"- Accuracy: {acc_baseline:.3f} \n",
"- F1 Score: {f1_baseline:.3f} \n",
"- AUC: {auc_base:.3f} \n",
"\n",
"**BERT (fine‑tuned)** \n",
"- Accuracy: {acc_bert:.3f} \n",
"- F1 Score: {f1_bert:.3f} \n",
"- AUC: {auc_bert:.3f} \n",
"\n",
"**Key Observation:** \n",
"> BERT’s contextual embeddings led to an ~{f1_bert - f1_baseline:.3f} absolute improvement in F1 over the TF‑IDF baseline, at the cost of roughly 10–15× slower inference on CPU. For production, consider DistilBERT or quantized BERT to balance speed vs. accuracy.\n",
"\"\"\"))\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"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.12.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|