{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# XGBoost" ], "metadata": { "id": "jTq04FWdew2X" } }, { "cell_type": "markdown", "source": [ "## Imports" ], "metadata": { "id": "Ps_SnZslesHt" } }, { "cell_type": "code", "source": [ "import pandas as pd\n", "import numpy as np\n", "import joblib\n", "import time\n", "import xgboost as xgb\n", "\n", "from scipy.sparse import csr_matrix, hstack\n", "from xgboost import XGBClassifier\n", "from sklearn.metrics import (\n", " accuracy_score,\n", " precision_score,\n", " recall_score,\n", " f1_score,\n", " roc_auc_score,\n", " classification_report,\n", " ConfusionMatrixDisplay\n", ")\n", "\n", "import matplotlib.pyplot as plt" ], "metadata": { "id": "1OrUe3_Dd4Vh" }, "execution_count": 1, "outputs": [] }, { "cell_type": "code", "source": [ "features = pd.read_csv(\"/content/handcrafted_features.csv\")\n", "\n", "tfidf = joblib.load(\"/content/tfidf_vectorizer.pkl\")\n", "scaler = joblib.load(\"/content/feature_scaler.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": "KW4VJMxKd4QO" }, "execution_count": 2, "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": "Mw1zqxHGd4Nx", "outputId": "d68ad4b6-b3a1-47aa-9196-3899426c1a31" }, "execution_count": 3, "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": "4K98A_D_d4Kr" }, "execution_count": 4, "outputs": [] }, { "cell_type": "code", "source": [ "print(x_train_tf.shape)\n", "print(x_test_tf.shape)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0dSTAAy6d4HY", "outputId": "cbc9d601-3221-493a-c4b7-c9b66d8eb764" }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(1274150, 50000)\n", "(318538, 50000)\n" ] } ] }, { "cell_type": "code", "source": [ "features_train = features.loc[x_train.index]\n", "features_test = features.loc[x_test.index]" ], "metadata": { "id": "sq96vb-gd4EI" }, "execution_count": 6, "outputs": [] }, { "cell_type": "code", "source": [ "print(features_train.shape)\n", "print(features_test.shape)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "CNzfyfbLd4A4", "outputId": "ba505041-9068-49e5-b6c8-a9e623d5434c" }, "execution_count": 7, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(1274150, 19)\n", "(318538, 19)\n" ] } ] }, { "cell_type": "code", "source": [ "\n", "fea_tr_scaled = scaler.transform(features_train)\n", "fea_te_scaled = scaler.transform(features_test)" ], "metadata": { "id": "64Lxq20Fd3-P" }, "execution_count": 8, "outputs": [] }, { "cell_type": "code", "source": [ "fea_tr_sparse = csr_matrix(fea_tr_scaled)\n", "fea_te_sparse = csr_matrix(fea_te_scaled)" ], "metadata": { "id": "T9riodd3d37g" }, "execution_count": 9, "outputs": [] }, { "cell_type": "code", "source": [ "x_train_final = hstack([\n", " x_train_tf, fea_tr_sparse\n", "])\n", "x_test_final = hstack([\n", " x_test_tf, fea_te_sparse\n", "])" ], "metadata": { "id": "I2Kdus7yd34l" }, "execution_count": 10, "outputs": [] }, { "cell_type": "code", "source": [ "print(x_train_final.shape)\n", "print(x_test_final.shape)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RGNFQgIFd31i", "outputId": "606dad63-e238-4c6b-d920-b9e911af66d2" }, "execution_count": 11, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(1274150, 50019)\n", "(318538, 50019)\n" ] } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "vzYgMugWd3yz" }, "execution_count": 11, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Model" ], "metadata": { "id": "EjgZTMcckUHh" } }, { "cell_type": "code", "source": [ "print(xgb.__version__)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "b_APSogYnr7d", "outputId": "5b47d5f0-eb87-420a-fb49-dbebe6509a22" }, "execution_count": 12, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "3.3.0\n" ] } ] }, { "cell_type": "code", "source": [ "xgb_model = XGBClassifier(\n", " objective=\"binary:logistic\",\n", " n_estimators=50,\n", " learning_rate=0.1,\n", " max_depth=4,\n", " min_child_weight=5,\n", " subsample=0.7,\n", " colsample_bytree=0.5,\n", " gamma=1,\n", " reg_alpha=1,\n", " reg_lambda=2,\n", " tree_method=\"hist\",\n", " device=\"cpu\",\n", " eval_metric=\"logloss\",\n", " random_state=42,\n", " n_jobs=-1\n", ")" ], "metadata": { "id": "2aRkTmCQd3vc" }, "execution_count": 13, "outputs": [] }, { "cell_type": "code", "source": [ "start = time.time()\n", "xgb_model.fit(x_train_final, y_train)\n", "end = time.time()\n", "\n", "print(f\"Training Time: {end-start:.2f} Seconds\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "49IETAhVd3qY", "outputId": "81d06981-b57d-40ec-b879-9e009fdda5e5" }, "execution_count": 14, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Training Time: 49.54 Seconds\n" ] } ] }, { "cell_type": "code", "source": [ "start = time.time()\n", "y_pred = xgb_model.predict(x_test_final)\n", "end = time.time()\n", "\n", "print(f\"Prediction Time: {end-start:.2f} Seconds\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "M5knl20kd3oD", "outputId": "fd7779c7-e9fb-49b9-baaa-9064de8354ac" }, "execution_count": 17, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Prediction Time: 3.55 Seconds\n" ] } ] }, { "cell_type": "code", "source": [ "y_prob = xgb_model.predict_proba(x_test_final)[:,1]\n", "print(y_prob)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VXywazP4d3lQ", "outputId": "083dd7c3-70fe-40d9-88d1-015134bc691f" }, "execution_count": 18, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0.66802084 0.42012957 0.44989178 ... 0.2539064 0.33331716 0.6278569 ]\n" ] } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "xMgdh3zud3il" }, "execution_count": 18, "outputs": [] }, { "cell_type": "markdown", "source": [ "Metrics" ], "metadata": { "id": "teydCytcrfxu" } }, { "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": "Zer5gxNtd3gM", "outputId": "c0b25248-2549-465c-fae2-aed6a65a6922" }, "execution_count": 19, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Accuracy : 0.6880\n", "Precision: 0.6870\n", "Recall : 0.6907\n", "F1 Score : 0.6889\n", "ROC AUC : 0.7609\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": "ldSTYVGJd3ds", "outputId": "9f7597d1-5a95-49a6-aabb-0b2a928bf8ca" }, "execution_count": 20, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Classification_Report: \n", " \n", " precision recall f1-score support\n", "\n", " 0 0.69 0.69 0.69 159267\n", " 1 0.69 0.69 0.69 159271\n", "\n", " accuracy 0.69 318538\n", " macro avg 0.69 0.69 0.69 318538\n", "weighted avg 0.69 0.69 0.69 318538\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(\n", " y_test,\n", " y_pred,\n", " cmap = \"Blues\"\n", ")\n", "\n", "plt.title(\"Logistic Regression (TF-IDF)\")\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 472 }, "id": "_zdSt6YRd3bB", "outputId": "7c055653-046f-436a-81e0-9d2e4da44610" }, "execution_count": 21, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "joblib.dump(xgb_model, \"xgboost_model.pkl\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ZSZANpCFd3Y-", "outputId": "2706b27b-8998-41f7-92bc-cfbad7b72b7f" }, "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['xgboost_model.pkl']" ] }, "metadata": {}, "execution_count": 22 } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "_2or9TPPd3Wq" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "467Tyo4md3Tu" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "yLgyMgW0d3RM" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "Ntc8E2Pad3O0" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "t-OlGLood3Mr" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "XaBijOCad3KC" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "NBVj0H-Xd3H8" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "a-PIgNjqd3Fw" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "mWFvWCyGd3DD" }, "execution_count": null, "outputs": [] } ] }