{ "cells": [ { "cell_type": "markdown", "id": "ff8cc602-e733-4a31-bf46-a31087511fe0", "metadata": {}, "source": [ "# Predict sales - sports companies" ] }, { "cell_type": "markdown", "id": "415e466a-1a71-4150-bff7-2f8904766df4", "metadata": {}, "source": [ "## Importations" ] }, { "cell_type": "code", "execution_count": 1, "id": "b5aaf421-850a-4a86-8e99-2c1f0723bd6c", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import os\n", "import s3fs\n", "import re\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, recall_score\n", "from sklearn.utils import class_weight\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.model_selection import GridSearchCV\n", "from sklearn.preprocessing import StandardScaler, MaxAbsScaler, MinMaxScaler\n", "from sklearn.metrics import make_scorer, f1_score, balanced_accuracy_score\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score\n", "from sklearn.exceptions import ConvergenceWarning, DataConversionWarning\n", "\n", "import pickle\n", "import warnings" ] }, { "cell_type": "markdown", "id": "c2f44070-451e-4109-9a08-3b80011d610f", "metadata": {}, "source": [ "## Load data " ] }, { "cell_type": "code", "execution_count": 2, "id": "b5f8135f-b6e7-4d6d-b8e1-da185b944aff", "metadata": {}, "outputs": [], "source": [ "# Create filesystem object\n", "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})" ] }, { "cell_type": "code", "execution_count": 3, "id": "2668a243-4ff8-40c6-9de2-5c9c07bcf714", "metadata": {}, "outputs": [], "source": [ "def load_train_test():\n", " BUCKET = \"projet-bdc2324-team1/Generalization/sport\"\n", " File_path_train = BUCKET + \"/Train_set.csv\"\n", " File_path_test = BUCKET + \"/Test_set.csv\"\n", " \n", " with fs.open( File_path_train, mode=\"rb\") as file_in:\n", " dataset_train = pd.read_csv(file_in, sep=\",\")\n", " # dataset_train['y_has_purchased'] = dataset_train['y_has_purchased'].fillna(0)\n", "\n", " with fs.open(File_path_test, mode=\"rb\") as file_in:\n", " dataset_test = pd.read_csv(file_in, sep=\",\")\n", " # dataset_test['y_has_purchased'] = dataset_test['y_has_purchased'].fillna(0)\n", " \n", " return dataset_train, dataset_test" ] }, { "cell_type": "code", "execution_count": 4, "id": "13eba3e1-3ea5-435b-8b05-6d7d5744cbe2", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_462/2459610029.py:7: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", " dataset_train = pd.read_csv(file_in, sep=\",\")\n" ] }, { "data": { "text/plain": [ "customer_id 0\n", "nb_tickets 0\n", "nb_purchases 0\n", "total_amount 0\n", "nb_suppliers 0\n", "vente_internet_max 0\n", "purchase_date_min 0\n", "purchase_date_max 0\n", "time_between_purchase 0\n", "nb_tickets_internet 0\n", "street_id 0\n", "structure_id 222825\n", "mcp_contact_id 70874\n", "fidelity 0\n", "tenant_id 0\n", "is_partner 0\n", "deleted_at 224213\n", "gender 0\n", "is_email_true 0\n", "opt_in 0\n", "last_buying_date 66139\n", "max_price 66139\n", "ticket_sum 0\n", "average_price 66023\n", "average_purchase_delay 66139\n", "average_price_basket 66139\n", "average_ticket_basket 66139\n", "total_price 116\n", "purchase_count 0\n", "first_buying_date 66139\n", "country 23159\n", "gender_label 0\n", "gender_female 0\n", "gender_male 0\n", "gender_other 0\n", "country_fr 23159\n", "nb_campaigns 0\n", "nb_campaigns_opened 0\n", "time_to_open 123159\n", "y_has_purchased 0\n", "dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset_train, dataset_test = load_train_test()\n", "dataset_train.isna().sum()" ] }, { "cell_type": "code", "execution_count": 18, "id": "e46622e7-0fc1-43f8-a7e7-34a5e90068b2", "metadata": {}, "outputs": [], "source": [ "def features_target_split(dataset_train, dataset_test):\n", " \"\"\"\n", " features_l = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'purchase_date_min', 'purchase_date_max', \n", " 'time_between_purchase', 'nb_tickets_internet', 'fidelity', 'is_email_true', 'opt_in', #'is_partner',\n", " 'gender_female', 'gender_male', 'gender_other', 'nb_campaigns', 'nb_campaigns_opened']\n", " \"\"\"\n", "\n", " # we suppress fidelity, time between purchase, and gender other (colinearity issue)\n", " features_l = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', \n", " 'purchase_date_min', 'purchase_date_max', 'nb_tickets_internet', 'is_email_true', \n", " 'opt_in', 'gender_female', 'gender_male', 'nb_campaigns', 'nb_campaigns_opened']\n", " \n", " X_train = dataset_train[features_l]\n", " y_train = dataset_train[['y_has_purchased']]\n", "\n", " X_test = dataset_test[features_l]\n", " y_test = dataset_test[['y_has_purchased']]\n", " return X_train, X_test, y_train, y_test" ] }, { "cell_type": "code", "execution_count": 19, "id": "cec4f386-e643-4bd8-b8cd-8917d2c1b3d0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape train : (224213, 14)\n", "Shape test : (96096, 14)\n" ] } ], "source": [ "X_train, X_test, y_train, y_test = features_target_split(dataset_train, dataset_test)\n", "print(\"Shape train : \", X_train.shape)\n", "print(\"Shape test : \", X_test.shape)" ] }, { "cell_type": "markdown", "id": "c9e8edbd-7ff6-42f9-a8eb-10d27ca19c8a", "metadata": {}, "source": [ "## Prepare preprocessing and Hyperparameters" ] }, { "cell_type": "code", "execution_count": 20, "id": "639b432a-c39c-4bf8-8ee2-e136d156e0dd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{0.0: 0.5837086520288036, 1.0: 3.486549107420539}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compute Weights\n", "weights = class_weight.compute_class_weight(class_weight = 'balanced', classes = np.unique(y_train['y_has_purchased']),\n", " y = y_train['y_has_purchased'])\n", "\n", "weight_dict = {np.unique(y_train['y_has_purchased'])[i]: weights[i] for i in range(len(np.unique(y_train['y_has_purchased'])))}\n", "weight_dict" ] }, { "cell_type": "code", "execution_count": 21, "id": "34644a00-85a5-41c9-98df-41178cb3ac69", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nb_ticketsnb_purchasestotal_amountnb_suppliersvente_internet_maxpurchase_date_minpurchase_date_maxnb_tickets_internetis_email_trueopt_ingender_femalegender_malenb_campaignsnb_campaigns_opened
02.01.060.001.00.0355.268981355.2689810.0TrueFalse010.00.0
18.03.0140.001.00.0373.540289219.2622690.0TrueFalse010.00.0
22.01.050.001.00.05.2024425.2024420.0TrueFalse010.00.0
33.01.090.001.00.05.1789585.1789580.0TrueFalse010.00.0
42.01.078.001.00.05.1740395.1740390.0TrueFalse100.00.0
.............................................
2242080.00.00.000.00.0550.000000550.0000000.0TrueFalse0134.03.0
2242091.01.020.001.01.0392.501030392.5010301.0TrueFalse0123.06.0
2242100.00.00.000.00.0550.000000550.0000000.0TrueTrue018.04.0
2242111.01.097.111.01.0172.334074172.3340741.0TrueFalse0113.05.0
2242120.00.00.000.00.0550.000000550.0000000.0TrueFalse014.04.0
\n", "

224213 rows × 14 columns

\n", "
" ], "text/plain": [ " nb_tickets nb_purchases total_amount nb_suppliers \\\n", "0 2.0 1.0 60.00 1.0 \n", "1 8.0 3.0 140.00 1.0 \n", "2 2.0 1.0 50.00 1.0 \n", "3 3.0 1.0 90.00 1.0 \n", "4 2.0 1.0 78.00 1.0 \n", "... ... ... ... ... \n", "224208 0.0 0.0 0.00 0.0 \n", "224209 1.0 1.0 20.00 1.0 \n", "224210 0.0 0.0 0.00 0.0 \n", "224211 1.0 1.0 97.11 1.0 \n", "224212 0.0 0.0 0.00 0.0 \n", "\n", " vente_internet_max purchase_date_min purchase_date_max \\\n", "0 0.0 355.268981 355.268981 \n", "1 0.0 373.540289 219.262269 \n", "2 0.0 5.202442 5.202442 \n", "3 0.0 5.178958 5.178958 \n", "4 0.0 5.174039 5.174039 \n", "... ... ... ... \n", "224208 0.0 550.000000 550.000000 \n", "224209 1.0 392.501030 392.501030 \n", "224210 0.0 550.000000 550.000000 \n", "224211 1.0 172.334074 172.334074 \n", "224212 0.0 550.000000 550.000000 \n", "\n", " nb_tickets_internet is_email_true opt_in gender_female \\\n", "0 0.0 True False 0 \n", "1 0.0 True False 0 \n", "2 0.0 True False 0 \n", "3 0.0 True False 0 \n", "4 0.0 True False 1 \n", "... ... ... ... ... \n", "224208 0.0 True False 0 \n", "224209 1.0 True False 0 \n", "224210 0.0 True True 0 \n", "224211 1.0 True False 0 \n", "224212 0.0 True False 0 \n", "\n", " gender_male nb_campaigns nb_campaigns_opened \n", "0 1 0.0 0.0 \n", "1 1 0.0 0.0 \n", "2 1 0.0 0.0 \n", "3 1 0.0 0.0 \n", "4 0 0.0 0.0 \n", "... ... ... ... \n", "224208 1 34.0 3.0 \n", "224209 1 23.0 6.0 \n", "224210 1 8.0 4.0 \n", "224211 1 13.0 5.0 \n", "224212 1 4.0 4.0 \n", "\n", "[224213 rows x 14 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train" ] }, { "cell_type": "code", "execution_count": 83, "id": "295676df-36ac-43d8-8b31-49ff08efd6e7", "metadata": {}, "outputs": [], "source": [ "# preprocess data \n", "# numeric features - standardize\n", "# categorical features - encode\n", "# encoded features - do nothing\n", "\n", "numeric_features = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', \n", " 'purchase_date_min', 'purchase_date_max', 'nb_tickets_internet', 'nb_campaigns', \n", " 'nb_campaigns_opened' # , 'gender_male', 'gender_female'\n", " ]\n", "\n", "numeric_transformer = Pipeline(steps=[\n", " #(\"imputer\", SimpleImputer(strategy=\"mean\")), \n", " (\"scaler\", StandardScaler()) \n", "])\n", "\n", "categorical_features = ['opt_in', 'is_email_true'] \n", "\n", "# Transformer for the categorical features\n", "categorical_transformer = Pipeline(steps=[\n", " #(\"imputer\", SimpleImputer(strategy=\"most_frequent\")), # Impute missing values with the most frequent\n", " (\"onehot\", OneHotEncoder(handle_unknown='ignore', sparse_output=False))\n", "])\n", "\n", "preproc = ColumnTransformer(\n", " transformers=[\n", " (\"num\", numeric_transformer, numeric_features),\n", " (\"cat\", categorical_transformer, categorical_features)\n", " ]\n", ")" ] }, { "cell_type": "code", "execution_count": 80, "id": "f46fb56e-c908-40b4-868f-9684d1ae01c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "nb_tickets 0\n", "nb_purchases 0\n", "total_amount 0\n", "nb_suppliers 0\n", "vente_internet_max 0\n", "purchase_date_min 0\n", "purchase_date_max 0\n", "nb_tickets_internet 0\n", "nb_campaigns 0\n", "nb_campaigns_opened 0\n", "dtype: int64" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train[numeric_features].isna().sum()" ] }, { "cell_type": "code", "execution_count": 52, "id": "e729781b-4d65-42c5-bdc5-82b4d653aaf0", "metadata": {}, "outputs": [], "source": [ "# Set loss\n", "balanced_scorer = make_scorer(balanced_accuracy_score)\n", "recall_scorer = make_scorer(recall_score)\n", "f1_scorer = make_scorer(f1_score)" ] }, { "cell_type": "code", "execution_count": 24, "id": "a7ebbe6f-70ba-4276-be18-f10e7bfd7423", "metadata": {}, "outputs": [], "source": [ "def draw_confusion_matrix(y_test, y_pred):\n", " conf_matrix = confusion_matrix(y_test, y_pred)\n", " sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1'], yticklabels=['Class 0', 'Class 1'])\n", " plt.xlabel('Predicted')\n", " plt.ylabel('Actual')\n", " plt.title('Confusion Matrix')\n", " plt.show()\n", "\n", "\n", "def draw_roc_curve(X_test, y_test):\n", " y_pred_prob = pipeline.predict_proba(X_test)[:, 1]\n", "\n", " # Calcul des taux de faux positifs (FPR) et de vrais positifs (TPR)\n", " fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label=1)\n", " \n", " # Calcul de l'aire sous la courbe ROC (AUC)\n", " roc_auc = auc(fpr, tpr)\n", " \n", " plt.figure(figsize = (14, 8))\n", " plt.plot(fpr, tpr, label=\"ROC curve(area = %0.3f)\" % roc_auc)\n", " plt.plot([0, 1], [0, 1], color=\"red\",label=\"Random Baseline\", linestyle=\"--\")\n", " plt.grid(color='gray', linestyle='--', linewidth=0.5)\n", " plt.xlabel('Taux de faux positifs (FPR)')\n", " plt.ylabel('Taux de vrais positifs (TPR)')\n", " plt.title('Courbe ROC : modèle logistique')\n", " plt.legend(loc=\"lower right\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "id": "2334eb51-e6ea-4fd0-89ce-f54cd474d332", "metadata": {}, "outputs": [], "source": [ "def draw_features_importance(pipeline, model):\n", " coefficients = pipeline.named_steps['logreg'].coef_[0]\n", " feature_names = pipeline.named_steps['logreg'].feature_names_in_\n", " \n", " # Tracer l'importance des caractéristiques\n", " plt.figure(figsize=(10, 6))\n", " plt.barh(feature_names, coefficients, color='skyblue')\n", " plt.xlabel('Importance des caractéristiques')\n", " plt.ylabel('Caractéristiques')\n", " plt.title('Importance des caractéristiques dans le modèle de régression logistique')\n", " plt.grid(True)\n", " plt.show()\n", "\n", "def draw_prob_distribution(X_test):\n", " y_pred_prob = pipeline.predict_proba(X_test)[:, 1]\n", " plt.figure(figsize=(8, 6))\n", " plt.hist(y_pred_prob, bins=10, range=(0, 1), color='blue', alpha=0.7)\n", " \n", " plt.xlim(0, 1)\n", " plt.ylim(0, None)\n", " \n", " plt.title('Histogramme des probabilités pour la classe 1')\n", " plt.xlabel('Probabilité')\n", " plt.ylabel('Fréquence')\n", " plt.grid(True)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 92, "id": "83917b97-4d9b-4e3c-ba27-1e546ce885d3", "metadata": {}, "outputs": [], "source": [ "# Hyperparameter\n", "\n", "param_c = np.logspace(-10, 4, 15, base=2)\n", "# param_penalty_type = ['l1', 'l2', 'elasticnet']\n", "param_penalty_type = ['l1']\n", "param_grid = {'logreg__C': param_c,\n", " 'logreg__penalty': param_penalty_type} " ] }, { "cell_type": "code", "execution_count": 26, "id": "3ae25049-920c-4a6d-a59d-c26e3b45dec6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1024" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 ** 10" ] }, { "cell_type": "code", "execution_count": 95, "id": "ba4cde9f-a614-4a43-81b9-e16e78aa6c4c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessor',\n",
       "                 ColumnTransformer(transformers=[('num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['nb_tickets', 'nb_purchases',\n",
       "                                                   'total_amount',\n",
       "                                                   'nb_suppliers',\n",
       "                                                   'vente_internet_max',\n",
       "                                                   'purchase_date_min',\n",
       "                                                   'purchase_date_max',\n",
       "                                                   'nb_tickets_internet',\n",
       "                                                   'nb_campaigns',\n",
       "                                                   'nb_campaigns_opened']),\n",
       "                                                 ('cat',\n",
       "                                                  Pipeline(steps=[('onehot',\n",
       "                                                                   OneHotEncoder(handle_unknown='ignore',\n",
       "                                                                                 sparse_output=False))]),\n",
       "                                                  ['opt_in',\n",
       "                                                   'is_email_true'])])),\n",
       "                ('logreg',\n",
       "                 LogisticRegression(class_weight={0.0: 0.5837086520288036,\n",
       "                                                  1.0: 3.486549107420539},\n",
       "                                    max_iter=5000, solver='saga'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets', 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internet',\n", " 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[('onehot',\n", " OneHotEncoder(handle_unknown='ignore',\n", " sparse_output=False))]),\n", " ['opt_in',\n", " 'is_email_true'])])),\n", " ('logreg',\n", " LogisticRegression(class_weight={0.0: 0.5837086520288036,\n", " 1.0: 3.486549107420539},\n", " max_iter=5000, solver='saga'))])" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Pipeline\n", "pipeline = Pipeline(steps=[\n", " ('preprocessor', preproc),\n", " ('logreg', LogisticRegression(solver='saga', class_weight = weight_dict,\n", " max_iter=5000)) \n", "])\n", "\n", "pipeline.set_output(transform=\"pandas\")" ] }, { "cell_type": "code", "execution_count": 40, "id": "1e4c1be5-176d-4222-9b3c-fe27225afe36", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nb_ticketsnb_purchasestotal_amountnb_suppliersvente_internet_maxpurchase_date_minpurchase_date_maxnb_tickets_internetis_email_trueopt_ingender_femalegender_malenb_campaignsnb_campaigns_opened
6446611.04.0281.41.01.0238.33059130.28504011.0TrueFalse100.00.0
1413270.00.00.00.00.0550.000000550.0000000.0TrueTrue0010.00.0
599992.01.00.01.01.0350.288926350.2889262.0TrueFalse100.00.0
268820.00.00.00.00.0550.000000550.0000000.0TrueFalse104.01.0
6295211.03.0325.01.01.0424.486781237.28226211.0TrueFalse000.00.0
.............................................
1413180.00.00.00.00.0550.000000550.0000000.0TrueTrue0016.01.0
1138383.02.015.01.01.0153.15294590.2770993.0TrueTrue0131.014.0
1849260.00.00.00.00.0550.000000550.0000000.0TrueTrue0118.00.0
146171.01.020.01.00.0239.258970239.2589700.0TrueTrue010.00.0
216854.01.088.01.00.0240.355162240.3551620.0TrueTrue010.00.0
\n", "

10000 rows × 14 columns

\n", "
" ], "text/plain": [ " nb_tickets nb_purchases total_amount nb_suppliers \\\n", "64466 11.0 4.0 281.4 1.0 \n", "141327 0.0 0.0 0.0 0.0 \n", "59999 2.0 1.0 0.0 1.0 \n", "26882 0.0 0.0 0.0 0.0 \n", "62952 11.0 3.0 325.0 1.0 \n", "... ... ... ... ... \n", "141318 0.0 0.0 0.0 0.0 \n", "113838 3.0 2.0 15.0 1.0 \n", "184926 0.0 0.0 0.0 0.0 \n", "14617 1.0 1.0 20.0 1.0 \n", "21685 4.0 1.0 88.0 1.0 \n", "\n", " vente_internet_max purchase_date_min purchase_date_max \\\n", "64466 1.0 238.330591 30.285040 \n", "141327 0.0 550.000000 550.000000 \n", "59999 1.0 350.288926 350.288926 \n", "26882 0.0 550.000000 550.000000 \n", "62952 1.0 424.486781 237.282262 \n", "... ... ... ... \n", "141318 0.0 550.000000 550.000000 \n", "113838 1.0 153.152945 90.277099 \n", "184926 0.0 550.000000 550.000000 \n", "14617 0.0 239.258970 239.258970 \n", "21685 0.0 240.355162 240.355162 \n", "\n", " nb_tickets_internet is_email_true opt_in gender_female \\\n", "64466 11.0 True False 1 \n", "141327 0.0 True True 0 \n", "59999 2.0 True False 1 \n", "26882 0.0 True False 1 \n", "62952 11.0 True False 0 \n", "... ... ... ... ... \n", "141318 0.0 True True 0 \n", "113838 3.0 True True 0 \n", "184926 0.0 True True 0 \n", "14617 0.0 True True 0 \n", "21685 0.0 True True 0 \n", "\n", " gender_male nb_campaigns nb_campaigns_opened \n", "64466 0 0.0 0.0 \n", "141327 0 10.0 0.0 \n", "59999 0 0.0 0.0 \n", "26882 0 4.0 1.0 \n", "62952 0 0.0 0.0 \n", "... ... ... ... \n", "141318 0 16.0 1.0 \n", "113838 1 31.0 14.0 \n", "184926 1 18.0 0.0 \n", "14617 1 0.0 0.0 \n", "21685 1 0.0 0.0 \n", "\n", "[10000 rows x 14 columns]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reduce X_train to reduce the training time\n", "\n", "X_train_subsample = X_train.sample(n=10000)\n", "y_train_subsample = y_train.loc[X_train_subsample.index]\n", "X_train_subsample" ] }, { "cell_type": "code", "execution_count": 41, "id": "2b09c2cd-fd5c-49b3-be66-cec6c5ec1351", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
y_has_purchased
644660.0
1413270.0
599990.0
268820.0
629520.0
......
1413180.0
1138380.0
1849260.0
146170.0
216850.0
\n", "

10000 rows × 1 columns

\n", "
" ], "text/plain": [ " y_has_purchased\n", "64466 0.0\n", "141327 0.0\n", "59999 0.0\n", "26882 0.0\n", "62952 0.0\n", "... ...\n", "141318 0.0\n", "113838 0.0\n", "184926 0.0\n", "14617 0.0\n", "21685 0.0\n", "\n", "[10000 rows x 1 columns]" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_train_subsample" ] }, { "cell_type": "code", "execution_count": 42, "id": "6c33fcd8-17d8-4390-b836-faec9ada9acd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessor',\n",
       "                 ColumnTransformer(transformers=[('num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['nb_tickets', 'nb_purchases',\n",
       "                                                   'total_amount',\n",
       "                                                   'nb_suppliers',\n",
       "                                                   'vente_internet_max',\n",
       "                                                   'purchase_date_min',\n",
       "                                                   'purchase_date_max',\n",
       "                                                   'nb_tickets_internetnb_campaigns',\n",
       "                                                   'nb_campaigns_opened']),\n",
       "                                                 ('cat',\n",
       "                                                  Pipeline(steps=[('onehot',\n",
       "                                                                   OneHotEncoder(handle_unknown='ignore',\n",
       "                                                                                 sparse_output=False))]),\n",
       "                                                  ['opt_in',\n",
       "                                                   'is_email_true'])])),\n",
       "                ('logreg',\n",
       "                 LogisticRegression(class_weight={0.0: 0.5837086520288036,\n",
       "                                                  1.0: 3.486549107420539},\n",
       "                                    max_iter=5000, solver='saga'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets', 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internetnb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[('onehot',\n", " OneHotEncoder(handle_unknown='ignore',\n", " sparse_output=False))]),\n", " ['opt_in',\n", " 'is_email_true'])])),\n", " ('logreg',\n", " LogisticRegression(class_weight={0.0: 0.5837086520288036,\n", " 1.0: 3.486549107420539},\n", " max_iter=5000, solver='saga'))])" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline" ] }, { "cell_type": "code", "execution_count": 43, "id": "710ccccc-50c9-4aba-8cf1-11483dbbdd1c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01]),\n", " 'logreg__penalty': ['l1', 'l2', 'elasticnet']}" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "param_grid" ] }, { "cell_type": "code", "execution_count": 46, "id": "ab078cf8-0d4c-4b23-9f33-2483cf605b06", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "make_scorer(f1_score, response_method='predict')" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f1_scorer" ] }, { "cell_type": "code", "execution_count": 50, "id": "8062169e-8305-42b0-aeff-8f714117da40", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nb_ticketsnb_purchasestotal_amountnb_suppliersvente_internet_maxpurchase_date_minpurchase_date_maxnb_tickets_internetis_email_trueopt_ingender_femalegender_malenb_campaignsnb_campaigns_opened
6446611.04.0281.41.01.0238.33059130.28504011.0TrueFalse100.00.0
1413270.00.00.00.00.0550.000000550.0000000.0TrueTrue0010.00.0
599992.01.00.01.01.0350.288926350.2889262.0TrueFalse100.00.0
268820.00.00.00.00.0550.000000550.0000000.0TrueFalse104.01.0
6295211.03.0325.01.01.0424.486781237.28226211.0TrueFalse000.00.0
.............................................
1413180.00.00.00.00.0550.000000550.0000000.0TrueTrue0016.01.0
1138383.02.015.01.01.0153.15294590.2770993.0TrueTrue0131.014.0
1849260.00.00.00.00.0550.000000550.0000000.0TrueTrue0118.00.0
146171.01.020.01.00.0239.258970239.2589700.0TrueTrue010.00.0
216854.01.088.01.00.0240.355162240.3551620.0TrueTrue010.00.0
\n", "

10000 rows × 14 columns

\n", "
" ], "text/plain": [ " nb_tickets nb_purchases total_amount nb_suppliers \\\n", "64466 11.0 4.0 281.4 1.0 \n", "141327 0.0 0.0 0.0 0.0 \n", "59999 2.0 1.0 0.0 1.0 \n", "26882 0.0 0.0 0.0 0.0 \n", "62952 11.0 3.0 325.0 1.0 \n", "... ... ... ... ... \n", "141318 0.0 0.0 0.0 0.0 \n", "113838 3.0 2.0 15.0 1.0 \n", "184926 0.0 0.0 0.0 0.0 \n", "14617 1.0 1.0 20.0 1.0 \n", "21685 4.0 1.0 88.0 1.0 \n", "\n", " vente_internet_max purchase_date_min purchase_date_max \\\n", "64466 1.0 238.330591 30.285040 \n", "141327 0.0 550.000000 550.000000 \n", "59999 1.0 350.288926 350.288926 \n", "26882 0.0 550.000000 550.000000 \n", "62952 1.0 424.486781 237.282262 \n", "... ... ... ... \n", "141318 0.0 550.000000 550.000000 \n", "113838 1.0 153.152945 90.277099 \n", "184926 0.0 550.000000 550.000000 \n", "14617 0.0 239.258970 239.258970 \n", "21685 0.0 240.355162 240.355162 \n", "\n", " nb_tickets_internet is_email_true opt_in gender_female \\\n", "64466 11.0 True False 1 \n", "141327 0.0 True True 0 \n", "59999 2.0 True False 1 \n", "26882 0.0 True False 1 \n", "62952 11.0 True False 0 \n", "... ... ... ... ... \n", "141318 0.0 True True 0 \n", "113838 3.0 True True 0 \n", "184926 0.0 True True 0 \n", "14617 0.0 True True 0 \n", "21685 0.0 True True 0 \n", "\n", " gender_male nb_campaigns nb_campaigns_opened \n", "64466 0 0.0 0.0 \n", "141327 0 10.0 0.0 \n", "59999 0 0.0 0.0 \n", "26882 0 4.0 1.0 \n", "62952 0 0.0 0.0 \n", "... ... ... ... \n", "141318 0 16.0 1.0 \n", "113838 1 31.0 14.0 \n", "184926 1 18.0 0.0 \n", "14617 1 0.0 0.0 \n", "21685 1 0.0 0.0 \n", "\n", "[10000 rows x 14 columns]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_subsample" ] }, { "cell_type": "code", "execution_count": 86, "id": "0270013a-6523-4cf8-8de0-569c0d1c5db5", "metadata": {}, "outputs": [], "source": [ "warnings.filterwarnings('ignore')\n", "warnings.filterwarnings(\"ignore\", category=ConvergenceWarning)\n", "warnings.filterwarnings(\"ignore\", category=DataConversionWarning)" ] }, { "cell_type": "code", "execution_count": 88, "id": "7a49d78a-5a9b-44a9-95cf-3fca1b3febfa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Returned hyperparameter: {'logreg__C': 0.03125, 'logreg__penalty': 'l1'}\n", "Best classification accuracy in train is: 0.47785817197986385\n" ] } ], "source": [ "# run the pipeline on the subsample\n", "\n", "logit_grid = GridSearchCV(pipeline, param_grid, cv=3, scoring = f1_scorer #, error_score=\"raise\"\n", " )\n", "logit_grid.fit(X_train_subsample, y_train_subsample)\n", "\n", "# print results\n", "print('Returned hyperparameter: {}'.format(logit_grid.best_params_))\n", "print('Best classification accuracy in train is: {}'.format(logit_grid.best_score_))\n", "# print('Classification accuracy on test is: {}'.format(logit_grid.score(X_test, y_test)))" ] }, { "cell_type": "code", "execution_count": 89, "id": "b1d5e71d-1078-4370-86e8-52b1ae378898", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01])" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "param_c" ] }, { "cell_type": "code", "execution_count": 96, "id": "cfe04739-fe9c-4802-9d34-885a8cfce0dc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=3,\n",
       "             estimator=Pipeline(steps=[('preprocessor',\n",
       "                                        ColumnTransformer(transformers=[('num',\n",
       "                                                                         Pipeline(steps=[('scaler',\n",
       "                                                                                          StandardScaler())]),\n",
       "                                                                         ['nb_tickets',\n",
       "                                                                          'nb_purchases',\n",
       "                                                                          'total_amount',\n",
       "                                                                          'nb_suppliers',\n",
       "                                                                          'vente_internet_max',\n",
       "                                                                          'purchase_date_min',\n",
       "                                                                          'purchase_date_max',\n",
       "                                                                          'nb_tickets_internet',\n",
       "                                                                          'nb_campaigns',\n",
       "                                                                          'nb_campaigns_opened']),\n",
       "                                                                        ('cat',\n",
       "                                                                         Pipeline(steps=[(...\n",
       "                                                                         1.0: 3.486549107420539},\n",
       "                                                           max_iter=5000,\n",
       "                                                           solver='saga'))]),\n",
       "             param_grid={'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n",
       "       1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n",
       "       2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n",
       "       4.000000e+00, 8.000000e+00, 1.600000e+01]),\n",
       "                         'logreg__penalty': ['l1']},\n",
       "             scoring=make_scorer(f1_score, response_method='predict'))
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=3,\n", " estimator=Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets',\n", " 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internet',\n", " 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[(...\n", " 1.0: 3.486549107420539},\n", " max_iter=5000,\n", " solver='saga'))]),\n", " param_grid={'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01]),\n", " 'logreg__penalty': ['l1']},\n", " scoring=make_scorer(f1_score, response_method='predict'))" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logit_grid = GridSearchCV(pipeline, param_grid, cv=3, scoring = f1_scorer #, error_score=\"raise\"\n", " )\n", "logit_grid" ] }, { "cell_type": "code", "execution_count": 97, "id": "6debc66c-a56d-41fa-8ef8-ba388e0e14fe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01]),\n", " 'logreg__penalty': ['l1']}" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "param_grid" ] }, { "cell_type": "code", "execution_count": 98, "id": "e394cc04-5d0b-4a64-9aa0-415dc8a3cbbc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Returned hyperparameter: {'logreg__C': 0.03125, 'logreg__penalty': 'l1'}\n", "Best classification accuracy in train is: 0.42160313383818665\n", "Classification accuracy on test is: 0.47078982841737305\n" ] } ], "source": [ "# run the pipeline on the full sample\n", "\n", "logit_grid = GridSearchCV(pipeline, param_grid, cv=3, scoring = f1_scorer #, error_score=\"raise\"\n", " )\n", "logit_grid.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 99, "id": "8e6cf558-a4f4-4159-9835-364ee3bb1ed2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Returned hyperparameter: {'logreg__C': 0.03125, 'logreg__penalty': 'l1'}\n", "Best classification F1 score in train is: 0.42160313383818665\n", "Classification F1 score on test is: 0.47078982841737305\n" ] } ], "source": [ "# print results\n", "print('Returned hyperparameter: {}'.format(logit_grid.best_params_))\n", "print('Best classification F1 score in train is: {}'.format(logit_grid.best_score_))\n", "print('Classification F1 score on test is: {}'.format(logit_grid.score(X_test, y_test)))" ] }, { "cell_type": "code", "execution_count": 100, "id": "e2ff26cb-f137-4a23-9add-bdb61bebdf9c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=3,\n",
       "             estimator=Pipeline(steps=[('preprocessor',\n",
       "                                        ColumnTransformer(transformers=[('num',\n",
       "                                                                         Pipeline(steps=[('scaler',\n",
       "                                                                                          StandardScaler())]),\n",
       "                                                                         ['nb_tickets',\n",
       "                                                                          'nb_purchases',\n",
       "                                                                          'total_amount',\n",
       "                                                                          'nb_suppliers',\n",
       "                                                                          'vente_internet_max',\n",
       "                                                                          'purchase_date_min',\n",
       "                                                                          'purchase_date_max',\n",
       "                                                                          'nb_tickets_internet',\n",
       "                                                                          'nb_campaigns',\n",
       "                                                                          'nb_campaigns_opened']),\n",
       "                                                                        ('cat',\n",
       "                                                                         Pipeline(steps=[(...\n",
       "                                                                         1.0: 3.486549107420539},\n",
       "                                                           max_iter=5000,\n",
       "                                                           solver='saga'))]),\n",
       "             param_grid={'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n",
       "       1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n",
       "       2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n",
       "       4.000000e+00, 8.000000e+00, 1.600000e+01]),\n",
       "                         'logreg__penalty': ['l1']},\n",
       "             scoring=make_scorer(f1_score, response_method='predict'))
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=3,\n", " estimator=Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets',\n", " 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internet',\n", " 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[(...\n", " 1.0: 3.486549107420539},\n", " max_iter=5000,\n", " solver='saga'))]),\n", " param_grid={'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01]),\n", " 'logreg__penalty': ['l1']},\n", " scoring=make_scorer(f1_score, response_method='predict'))" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logit_grid" ] }, { "cell_type": "code", "execution_count": 105, "id": "5d553da2-5c2a-491a-b4d2-f31c30c201a6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'scoring': make_scorer(f1_score, response_method='predict'),\n", " 'estimator': Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets', 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internet',\n", " 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[('onehot',\n", " OneHotEncoder(handle_unknown='ignore',\n", " sparse_output=False))]),\n", " ['opt_in',\n", " 'is_email_true'])])),\n", " ('logreg',\n", " LogisticRegression(class_weight={0.0: 0.5837086520288036,\n", " 1.0: 3.486549107420539},\n", " max_iter=5000, solver='saga'))]),\n", " 'n_jobs': None,\n", " 'refit': True,\n", " 'cv': 3,\n", " 'verbose': 0,\n", " 'pre_dispatch': '2*n_jobs',\n", " 'error_score': nan,\n", " 'return_train_score': False,\n", " 'param_grid': {'logreg__C': array([9.765625e-04, 1.953125e-03, 3.906250e-03, 7.812500e-03,\n", " 1.562500e-02, 3.125000e-02, 6.250000e-02, 1.250000e-01,\n", " 2.500000e-01, 5.000000e-01, 1.000000e+00, 2.000000e+00,\n", " 4.000000e+00, 8.000000e+00, 1.600000e+01]),\n", " 'logreg__penalty': ['l1']},\n", " 'multimetric_': False,\n", " 'best_index_': 5,\n", " 'best_score_': 0.42160313383818665,\n", " 'best_params_': {'logreg__C': 0.03125, 'logreg__penalty': 'l1'},\n", " 'best_estimator_': Pipeline(steps=[('preprocessor',\n", " ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['nb_tickets', 'nb_purchases',\n", " 'total_amount',\n", " 'nb_suppliers',\n", " 'vente_internet_max',\n", " 'purchase_date_min',\n", " 'purchase_date_max',\n", " 'nb_tickets_internet',\n", " 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[('onehot',\n", " OneHotEncoder(handle_unknown='ignore',\n", " sparse_output=False))]),\n", " ['opt_in',\n", " 'is_email_true'])])),\n", " ('logreg',\n", " LogisticRegression(C=0.03125,\n", " class_weight={0.0: 0.5837086520288036,\n", " 1.0: 3.486549107420539},\n", " max_iter=5000, penalty='l1',\n", " solver='saga'))]),\n", " 'refit_time_': 305.1356477737427,\n", " 'feature_names_in_': array(['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers',\n", " 'vente_internet_max', 'purchase_date_min', 'purchase_date_max',\n", " 'nb_tickets_internet', 'is_email_true', 'opt_in', 'gender_female',\n", " 'gender_male', 'nb_campaigns', 'nb_campaigns_opened'], dtype=object),\n", " 'scorer_': make_scorer(f1_score, response_method='predict'),\n", " 'cv_results_': {'mean_fit_time': array([ 11.07076669, 13.15744201, 27.35094929, 40.0343461 ,\n", " 94.58210254, 140.45846391, 159.83818332, 162.80178094,\n", " 163.94260454, 171.08749111, 169.26621262, 166.36741408,\n", " 167.91208776, 173.06720233, 170.93666704]),\n", " 'std_fit_time': array([ 0.09462032, 1.51362591, 6.70859141, 22.68643753, 28.72690872,\n", " 70.8434823 , 85.23159321, 79.71538593, 82.70486235, 84.79706797,\n", " 86.79005212, 84.67956107, 83.94889047, 89.68716252, 89.41361431]),\n", " 'mean_score_time': array([0.11632609, 0.10857773, 0.18140252, 0.1291213 , 0.11651532,\n", " 0.07535577, 0.12481014, 0.16039928, 0.15685773, 0.07996233,\n", " 0.12988146, 0.10067987, 0.1194102 , 0.09737802, 0.09390028]),\n", " 'std_score_time': array([0.02131792, 0.03620144, 0.05853886, 0.06555575, 0.03228018,\n", " 0.01433186, 0.03501336, 0.05466042, 0.06882891, 0.01002881,\n", " 0.00495894, 0.00905774, 0.04075337, 0.03269379, 0.01990173]),\n", " 'param_logreg__C': masked_array(data=[0.0009765625, 0.001953125, 0.00390625, 0.0078125,\n", " 0.015625, 0.03125, 0.0625, 0.125, 0.25, 0.5, 1.0, 2.0,\n", " 4.0, 8.0, 16.0],\n", " mask=[False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False],\n", " fill_value='?',\n", " dtype=object),\n", " 'param_logreg__penalty': masked_array(data=['l1', 'l1', 'l1', 'l1', 'l1', 'l1', 'l1', 'l1', 'l1',\n", " 'l1', 'l1', 'l1', 'l1', 'l1', 'l1'],\n", " mask=[False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False],\n", " fill_value='?',\n", " dtype=object),\n", " 'params': [{'logreg__C': 0.0009765625, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.001953125, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.00390625, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.0078125, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.015625, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.03125, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.0625, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.125, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.25, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 0.5, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 1.0, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 2.0, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 4.0, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 8.0, 'logreg__penalty': 'l1'},\n", " {'logreg__C': 16.0, 'logreg__penalty': 'l1'}],\n", " 'split0_test_score': array([0.27289073, 0.2738913 , 0.27382853, 0.27409759, 0.27454764,\n", " 0.27661894, 0.2766145 , 0.27584723, 0.27571682, 0.27576295,\n", " 0.27580092, 0.27577943, 0.27581248, 0.27581909, 0.27581909]),\n", " 'split1_test_score': array([0.4714244 , 0.47196015, 0.48362373, 0.48891733, 0.49066854,\n", " 0.49091122, 0.49086284, 0.49065871, 0.49062783, 0.49049541,\n", " 0.49048106, 0.49045238, 0.49043804, 0.49043804, 0.4904237 ]),\n", " 'split2_test_score': array([0.50689906, 0.50092334, 0.4981377 , 0.49759178, 0.49725836,\n", " 0.49727924, 0.49708801, 0.49738305, 0.49751781, 0.49738248,\n", " 0.49738248, 0.49738248, 0.49738248, 0.49738248, 0.49738248]),\n", " 'mean_test_score': array([0.4170714 , 0.4155916 , 0.41852999, 0.42020223, 0.42082484,\n", " 0.42160313, 0.42152178, 0.42129633, 0.42128749, 0.42121361,\n", " 0.42122149, 0.42120476, 0.421211 , 0.4212132 , 0.42120842]),\n", " 'std_test_score': array([0.10297463, 0.1008925 , 0.10249081, 0.10337226, 0.10346859,\n", " 0.10255226, 0.10249644, 0.10288467, 0.10297243, 0.10288758,\n", " 0.10286646, 0.10287015, 0.10285136, 0.10284824, 0.10284503]),\n", " 'rank_test_score': array([14, 15, 13, 12, 11, 1, 2, 3, 4, 6, 5, 10, 8, 7, 9],\n", " dtype=int32)},\n", " 'n_splits_': 3}" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logit_grid.__dict__" ] }, { "cell_type": "code", "execution_count": 114, "id": "3573f34e-25d5-4afb-82cc-52323e2f63c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.34302143, 0. , 0.02675567, 0.45036527, -0.05004637,\n", " 0.7663532 , -1.35216757, 0.17404712, 0.13679663, 0.10249737,\n", " 0.40815146, -0.6311938 , 0.11194512, -0.33498749]])" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# coefficients trouvés pour le modèle optimal\n", "logit_grid.best_estimator_.named_steps[\"logreg\"].coef_" ] }, { "cell_type": "code", "execution_count": 125, "id": "0332a814-61fb-4b71-836a-e8ace70b1a44", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'preprocessor': ColumnTransformer(transformers=[('num',\n", " Pipeline(steps=[('scaler', StandardScaler())]),\n", " ['nb_tickets', 'nb_purchases', 'total_amount',\n", " 'nb_suppliers', 'vente_internet_max',\n", " 'purchase_date_min', 'purchase_date_max',\n", " 'nb_tickets_internet', 'nb_campaigns',\n", " 'nb_campaigns_opened']),\n", " ('cat',\n", " Pipeline(steps=[('onehot',\n", " OneHotEncoder(handle_unknown='ignore',\n", " sparse_output=False))]),\n", " ['opt_in', 'is_email_true'])]),\n", " 'logreg': LogisticRegression(C=0.03125,\n", " class_weight={0.0: 0.5837086520288036,\n", " 1.0: 3.486549107420539},\n", " max_iter=5000, penalty='l1', solver='saga')}" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logit_grid.best_estimator_.named_steps" ] }, { "cell_type": "code", "execution_count": 116, "id": "287615b9-e062-4b84-be61-26b9364b2cf4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.22304234])" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logit_grid.best_estimator_.named_steps[\"logreg\"].intercept_" ] }, { "cell_type": "code", "execution_count": 115, "id": "4d50899d-cc0b-4a71-9406-f8b0a277c4a6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nb_ticketsnb_purchasestotal_amountnb_suppliersvente_internet_maxpurchase_date_minpurchase_date_maxnb_tickets_internetis_email_trueopt_ingender_femalegender_malenb_campaignsnb_campaigns_opened
02.01.060.001.00.0355.268981355.2689810.0TrueFalse010.00.0
18.03.0140.001.00.0373.540289219.2622690.0TrueFalse010.00.0
22.01.050.001.00.05.2024425.2024420.0TrueFalse010.00.0
33.01.090.001.00.05.1789585.1789580.0TrueFalse010.00.0
42.01.078.001.00.05.1740395.1740390.0TrueFalse100.00.0
.............................................
2242080.00.00.000.00.0550.000000550.0000000.0TrueFalse0134.03.0
2242091.01.020.001.01.0392.501030392.5010301.0TrueFalse0123.06.0
2242100.00.00.000.00.0550.000000550.0000000.0TrueTrue018.04.0
2242111.01.097.111.01.0172.334074172.3340741.0TrueFalse0113.05.0
2242120.00.00.000.00.0550.000000550.0000000.0TrueFalse014.04.0
\n", "

224213 rows × 14 columns

\n", "
" ], "text/plain": [ " nb_tickets nb_purchases total_amount nb_suppliers \\\n", "0 2.0 1.0 60.00 1.0 \n", "1 8.0 3.0 140.00 1.0 \n", "2 2.0 1.0 50.00 1.0 \n", "3 3.0 1.0 90.00 1.0 \n", "4 2.0 1.0 78.00 1.0 \n", "... ... ... ... ... \n", "224208 0.0 0.0 0.00 0.0 \n", "224209 1.0 1.0 20.00 1.0 \n", "224210 0.0 0.0 0.00 0.0 \n", "224211 1.0 1.0 97.11 1.0 \n", "224212 0.0 0.0 0.00 0.0 \n", "\n", " vente_internet_max purchase_date_min purchase_date_max \\\n", "0 0.0 355.268981 355.268981 \n", "1 0.0 373.540289 219.262269 \n", "2 0.0 5.202442 5.202442 \n", "3 0.0 5.178958 5.178958 \n", "4 0.0 5.174039 5.174039 \n", "... ... ... ... \n", "224208 0.0 550.000000 550.000000 \n", "224209 1.0 392.501030 392.501030 \n", "224210 0.0 550.000000 550.000000 \n", "224211 1.0 172.334074 172.334074 \n", "224212 0.0 550.000000 550.000000 \n", "\n", " nb_tickets_internet is_email_true opt_in gender_female \\\n", "0 0.0 True False 0 \n", "1 0.0 True False 0 \n", "2 0.0 True False 0 \n", "3 0.0 True False 0 \n", "4 0.0 True False 1 \n", "... ... ... ... ... \n", "224208 0.0 True False 0 \n", "224209 1.0 True False 0 \n", "224210 0.0 True True 0 \n", "224211 1.0 True False 0 \n", "224212 0.0 True False 0 \n", "\n", " gender_male nb_campaigns nb_campaigns_opened \n", "0 1 0.0 0.0 \n", "1 1 0.0 0.0 \n", "2 1 0.0 0.0 \n", "3 1 0.0 0.0 \n", "4 0 0.0 0.0 \n", "... ... ... ... \n", "224208 1 34.0 3.0 \n", "224209 1 23.0 6.0 \n", "224210 1 8.0 4.0 \n", "224211 1 13.0 5.0 \n", "224212 1 4.0 4.0 \n", "\n", "[224213 rows x 14 columns]" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# c'est la 2ème variable nb_purchases qui a été supprimée par le LASSO\n", "X_train" ] }, { "cell_type": "code", "execution_count": 122, "id": "e53b1f79-762d-4f1f-8505-91de1088af42", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32.0" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# best param : alpha = 32\n", "1/logit_grid.best_params_[\"logreg__C\"]" ] }, { "cell_type": "code", "execution_count": 127, "id": "41bcaaf6-ab58-4004-a3c5-586d77e872d1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy Score: 0.7589597902097902\n", "F1 Score: 0.47078982841737305\n", "Recall Score: 0.7525931336742148\n" ] } ], "source": [ "# print results for the best model\n", "\n", "y_pred = logit_grid.predict(X_test)\n", "\n", "# Calculate the F1 score\n", "acc = accuracy_score(y_test, y_pred)\n", "print(f\"Accuracy Score: {acc}\")\n", "\n", "f1 = f1_score(y_test, y_pred)\n", "print(f\"F1 Score: {f1}\")\n", "\n", "recall = recall_score(y_test, y_pred)\n", "print(f\"Recall Score: {recall}\")" ] }, { "cell_type": "code", "execution_count": 128, "id": "a454bb57-76eb-4a22-9950-0733d39e449f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# confusion matrix \n", "\n", "draw_confusion_matrix(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 138, "id": "25ec1701-ade5-4419-8b46-8a1bb109cf84", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABIQAAAK8CAYAAACeK2TMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wU5drG8d+mkwoBQgm9g3QQKdKkSVOkiNhQwWM5x4IdG3YUC7ajqK/dIyLSFBABEQEBpffeW4AQSO877x8jC8MGTCDJ7Gav70c+Zp6d3dwJXDtw55nncRiGYSAiIiIiIiIiIj7Dz+4CRERERERERESkeKkhJCIiIiIiIiLiY9QQEhERERERERHxMWoIiYiIiIiIiIj4GDWERERERERERER8jBpCIiIiIiIiIiI+Rg0hEREREREREREfo4aQiIiIiIiIiIiPUUNIRERERERERMTHqCEkIiIi4uWef/55ypYty759++wuRURERLyEGkIiIiJFaP369dx+++3UrFmTkJAQwsPDadmyJePGjSMhIcGWmr744gscDgcrV64s0s+zd+9eHA6H65efnx9lypShW7duzJ0797zPmzNnDn379qV8+fIEBwdTtWpVhg8fzubNm8/7nMWLF3P99dcTGxtLUFAQUVFRtG/fng8//JDU1NSi+PJscfr3bu/evZbxMWPGcN111zFkyBCysrLyfO5zzz2Hw+EotFoWLlyIw+Fg4cKFhfaaealRowa33XZbgZ6zdOlSnnvuOU6dOuX2WJcuXejSpUuh1CYiIuLN1BASEREpIp988gmtWrVixYoVPProo8yZM4dp06YxZMgQJkyYwIgRI+wusVjcd999LFu2jMWLF/PGG2+wY8cO+vTpw6JFi9zOfeyxx+jduzdOp5MPPviAefPmMWbMGFasWEHLli2ZOnWq23PGjBlDp06dOHToEC+++CLz5s3ju+++o1u3bjz33HM8/fTTxfFl2m7ChAmUL1+eUaNG2V1KoZo2bRrPPPNMgZ6zdOlSnn/++TwbQh988AEffPBBIVUnIiLivQLsLkBERKQkWrZsGffccw89evRg+vTpBAcHux7r0aMHDz/8MHPmzCnWmrKzswt1hkh+VatWjbZt2wLQoUMH6tatS+fOnfn000/p1KmT67yJEyfy+uuvc88991j+wd6pUyeGDRtG586dueWWW2jevDm1atUCYPLkybzwwguMGDGCTz75xPL19e7dm8cee4xly5YV01dqr4CAAGbNmmV3GYWuRYsWhfp6jRo1KtTXExER8VaaISQiIlIEXnnlFRwOBx9//LGlGXRaUFAQ11xzjevY6XQybtw4GjRoQHBwMDExMdx6660cPHjQ8rzz3T5z7m0wp2/n+frrr3n44YeJjY0lODiYnTt3us45efIkt99+O9HR0YSFhdG/f392797t9trz58+nW7duREZGEhoaSocOHfj1118v4rtiat26NQBHjx61jL/88suUKVOGN954w+05YWFhvPfee6SlpTF+/HjX+AsvvECZMmV4991382x2RURE0LNnz4uu9VxdunShcePGLFu2jPbt21OqVClq1KjB559/DsCsWbNo2bIloaGhNGnSJM+m35IlS+jWrRsRERGEhobSvn37PBs5y5cvp0OHDoSEhFC5cmVGjx5NdnZ2nnVNmjSJdu3aERYWRnh4OD179mTVqlX5+prOfW6vXr1Ys2ZNAb4rVj/++CPt2rUjNDSUiIgIevTokWdTbsaMGTRt2pTg4GBq1arFO++8k+dtbef+mXc6nbz00kvUr1+fUqVKUbp0aZo2bco777wDmLfGPfroowDUrFnTdcvi6Vvb8rpl7PDhw1x//fVEREQQFRXF0KFDWb58OQ6Hgy+++MJ13vluN7vtttuoUaOGZSwrK4uXXnrJleny5ctz++23c/z48fx9I0VERIqYGkIiIiKFLDc3lwULFtCqVSuqVq2ar+fcc889PP744/To0YMff/yRF198kTlz5tC+fXvi4+MvupbRo0ezf/9+JkyYwE8//URMTIzrsREjRuDn58e3337L22+/zV9//UWXLl0st9l888039OzZk8jISL788ku+//57oqOj6dWr10U3hfbs2QNAvXr1XGNHjhxh06ZN9OzZk9DQ0Dyf165dO2JiYpg3b57rORs3brzgc/LjdPPsueeey9f5cXFx3H777YwcOZIZM2bQpEkT7rjjDl544QVGjx7NY489xpQpUwgPD2fAgAEcPnzY9dzff/+dq666isTERD799FMmTpxIREQE/fv3Z9KkSa7zNm/eTLdu3Th16hRffPEFEyZMYM2aNbz00ktu9bzyyisMGzaMRo0a8f333/PVV1+RlJREx44d2bhx4wW/lnOf+/XXX5OcnEzHjh0vuGbT+Xz77bdce+21REZGMnHiRD799FNOnjxJly5dWLJkieu8OXPmMHDgQMqWLcukSZMYN24cEydO5Msvv/zHzzFu3Diee+45hg0bxqxZs5g0aRIjRoxw/bkdOXIk9913HwBTp05l2bJlLFu2jJYtW+b5eunp6XTv3p25c+cyduxYJk+eTMWKFRk6dGiBv/7TnE4n1157La+++io33ngjs2bN4tVXX2XevHl06dKF9PT0i35tERGRQmOIiIhIoYqLizMA44YbbsjX+Vu2bDEA495777WM//nnnwZgPPnkk66x6tWrG8OHD3d7jc6dOxudO3d2Hf/2228GYHTq1Mnt3M8//9wAjOuuu84y/scffxiA8dJLLxmGYRipqalGdHS00b9/f8t5ubm5RrNmzYw2bdpc8Ovas2ePARivvfaakZ2dbWRkZBhr16412rVrZ1SqVMnYs2eP69zly5cbgPHEE09c8DWvuOIKo1SpUgV6zj9ZuHCh4e/vbzz//PP/eG7nzp0NwFi5cqVr7MSJE4a/v79RqlQp49ChQ67xtWvXGoDx7rvvusbatm1rxMTEGMnJya6xnJwco3HjxkaVKlUMp9NpGIZhDB061ChVqpQRFxdnOa9BgwYG4Pre7d+/3wgICDD+/e9/W+pMSkoyYmJijMGDB7vGxowZY5z9V7/Tz73vvvssz01OTjYqVqxoXH/99Rf8Xpz+M/bbb78ZhmH+uahcubLRpEkTIzc31/J6MTExRvv27V1jl19+uVG1alUjMzPTcl7ZsmWNc/96eu6f+X79+hnNmze/YG2vv/665ft0tnOz8uGHHxqAMWPGDMt5d955pwEYn3/++Xmfe9rw4cON6tWru44nTpxoAMaUKVMs561YscIAjA8++OCC9YuIiBQHzRASERGx2W+//QbgditYmzZtaNiw4SXdnjVo0KDzPnbTTTdZjtu3b0/16tVd9SxdupSEhASGDx9OTk6O65fT6eTqq69mxYoV+drB6/HHHycwMJCQkBCaN2/Oxo0b+emnn9xusckPwzAKfR2kzp07k5OTw7PPPpuv8ytVqkSrVq1cx9HR0cTExNC8eXMqV67sGm/YsCGAayv41NRU/vzzTwYPHkx4eLjrPH9/f2655RYOHjzItm3bAPPPRLdu3ahQoYLlvHNnrfzyyy/k5ORwxx13WMYjIiLo2rUrv//++3m/jtPPvfXWWy2/vyEhIXTu3LnAu4dt27aNw4cPc8stt+Dnd+avmOHh4QwaNIjly5eTlpZGamoqK1euZMCAAQQFBVnO69+//z9+njZt2rBu3TruvfdefvnlF5KSkgpU57l+++03IiIiLLdwAtx4440X/ZozZ86kdOnS9O/f3/K9bd68ORUrVizyndlERETyQ4tKi4iIFLJy5coRGhrqujXqn5w4cQIwGw3nqly5squhcDHyes3TKlasmOfY6XpOr/EzePDg875GQkICYWFhF6zhgQce4OabbyYzM5Ply5fz9NNPc+2117Ju3TrKli0LmAtPA//4Pdu3b5/rNrz8PqewRUdHu40FBQW5jZ9udmRkZADmmk2GYZz39xnO/Fk4ceLEeX9/znb696h9+/Zu555u3p3P6edefvnleT5+dlMnP/7pz7HT6XR9DwzDsDS7Tstr7FyjR48mLCyMb775hgkTJuDv70+nTp147bXXXOtTFbTuvD5vXt///Dp69CinTp2yNLzOdim3gYqIiBQWNYREREQKmb+/P926dePnn3/m4MGDVKlS5YLnn26KHDlyxO3cw4cPU65cOddxSEgImZmZbq8RHx9vOe+0C82miYuLy3OsTp06AK7Xe++991y7hJ0rP/+Ar1Kliusf6h06dKBixYrcfPPNjBkzhvfffx8wmwiXXXYZc+fOJS0tLc81gZYtW8bRo0cZMmSI6zlNmjS54HM8SZkyZfDz8+PIkSNuj51eZ+j097xs2bLn/f052+nzp02bRs2aNQtUz+nn/vDDD1SvXr1Az83L2X+Oz3X48GH8/PwoU6aMa5bXuYuKQ95/Js8VEBDAQw89xEMPPcSpU6eYP38+Tz75JL169eLAgQMF/nNQtmxZ/vrrr3zVEhISQmJiotv4uQ2ecuXKUbZs2fPuJBgREVGgGkVERIqCbhkTEREpAqNHj8YwDO68806ysrLcHs/Ozuann34C4KqrrgLMBZzPtmLFCrZs2UK3bt1cYzVq1GD9+vWW87Zv3+661agg/ve//1mOly5dyr59+1y7KHXo0IHSpUuzefNmWrduneev882AuJCbbrqJLl268Mknn1hmPz311FOcPHmSRx55xO05qamp3H///YSGhjJq1CjX+DPPPMPJkye5//77MQzD7XkpKSnMnTu3wDUWhbCwMK644gqmTp1qWVTY6XTyzTffUKVKFddC2127duXXX3+1NE1yc3MtC08D9OrVi4CAANasWUODBg3y/HU+p5+7a9eu8/7+FkT9+vWJjY3l22+/tfxepKamMmXKFNfOY2FhYbRu3Zrp06dbspGSksLMmTML9DlLly7N4MGD+fe//01CQgJ79+4FcO3sl5/Fm7t27UpycjI//vijZfzbb791O7dGjRps377d0pQ9ceIES5cutZzXr18/Tpw4QW5ubp7f1/r16xfo6xQRESkKmiEkIiJSBNq1a8eHH37IvffeS6tWrbjnnnu47LLLyM7OZs2aNXz88cc0btyY/v37U79+ff71r3/x3nvv4efnR+/evdm7dy/PPPMMVatWtTRAbrnlFm6++WbuvfdeBg0axL59+xg3bhzly5cvcI0rV65k5MiRDBkyhAMHDvDUU08RGxvLvffeC5hrurz33nsMHz6chIQEBg8eTExMDMePH2fdunUcP36cDz/88KK+P6+99hpXXHEFL774Iv/3f/8HwLBhw1i9ejVvvPEGe/fu5Y477qBChQps27aN8ePHs2vXLr799ltq1arlep0hQ4bwzDPP8OKLL7J161ZGjBhB7dq1SUtL488//+Sjjz5i6NChF9x6/vfff6dbt248++yz+V5H6GKNHTuWHj160LVrVx555BGCgoL44IMP2LhxIxMnTnTN6Hr66af58ccfueqqq3j22WcJDQ3lv//9r9uaTTVq1OCFF17gmWeeYc+ePfTp04fo6GiOHj3Kn3/+SVhYGC+88EKetZx+7lNPPcXu3bu5+uqrKVOmDEePHuWvv/4iLCyM559/Pt9fm5+fH+PGjeOmm26iX79+3HXXXWRmZvL6669z6tQpXn31Vde5L7zwAn379qVXr1488MAD5Obm8vrrrxMeHk5CQsIFP0///v1p3LgxrVu3pnz58uzbt4+3336b6tWrU7duXQCaNGkCwDvvvMPw4cMJDAykfv36ec7MufXWWxk/fjy33norL7/8MnXr1mX27Nn88ssvbufecsstfPTRR9x8883ceeednDhxgnHjxhEZGWk574YbbuB///sfffr04YEHHqBNmzYEBgZy8OBBfvvtN6699lquu+66fH9vRUREioR961mLiIiUfGvXrjWGDx9uVKtWzQgKCjLCwsKMFi1aGM8++6xx7Ngx13m5ubnGa6+9ZtSrV88IDAw0ypUrZ9x8883GgQMHLK/ndDqNcePGGbVq1TJCQkKM1q1bGwsWLDjvLmOTJ092q+n0LmNz5841brnlFqN06dJGqVKljD59+hg7duxwO//33383+vbta0RHRxuBgYFGbGys0bdv3zxf+2yndxl7/fXX83x8yJAhRkBAgLFz507L+OzZs40+ffoYZcuWdX2+W265xdi0adN5P9fvv/9uDB482KhUqZIRGBhoREZGGu3atTNef/11Iykp6YJ1nv5ejRkz5oLnGYa5y9Rll13mNl69enWjb9++buOA2w5gixcvNq666iojLCzMKFWqlNG2bVvjp59+cnvuH3/8YbRt29YIDg42KlasaDz66KPGxx9/nOfuWdOnTze6du1qREZGGsHBwUb16tWNwYMHG/Pnz3edc+4uYwV5bl7O3WXs7Ne74oorjJCQECMsLMzo1q2b8ccff7g9f9q0aUaTJk2MoKAgo1q1asarr75q3H///UaZMmUs5527y9ibb75ptG/f3ihXrpzruSNGjDD27t1red7o0aONypUrG35+fpY689op7ODBg8agQYOM8PBwIyIiwhg0aJCxdOlSt13GDMMwvvzyS6Nhw4ZGSEiI0ahRI2PSpEluu4wZhmFkZ2cbb7zxhtGsWTMjJCTECA8PNxo0aGDcddddeeZMRESkuDkMI4/51SIiIiIixSg7O5vmzZsTGxvrEbf57d27l5o1a/L555+77QAoIiJSEuiWMREREREpdiNGjKBHjx5UqlSJuLg4JkyYwJYtW3jnnXfsLk1ERMQnqCEkIiIiIsUuOTmZRx55hOPHjxMYGEjLli2ZPXs23bt3t7s0ERERn6BbxkREREREREREfIy2nRcRERERERER8TFqCImIiIiIiIiI+Bg1hEREREREREREfIzPLSrtdDo5fPgwEREROBwOu8sRERERERERESkUhmGQnJxM5cqV8fO78Bwgn2sIHT58mKpVq9pdhoiIiIiIiIhIkThw4ABVqlS54Dk+1xCKiIgAzG9OZGSkzdVcmjlz5nD11VfbXYaIx1AmRKyUCRF3yoWIlTIhYuXtmUhKSqJq1aqu3seF+Ny280lJSURFRZGYmOj1DaGcnBwCAnyupydyXsqEiJUyIeJOuRCxUiZErLw9EwXpeWhRaS82efJku0sQ8SjKhIiVMiHiTrkQsVImRKx8KRNqCImIiIiIiIiI+Bg1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eT7voYceMq677jrLtscee8xo27atZVtqaqpRo0YNY9GiRUaHDh2MRx55xPXY9u3bDcDYvHmza1t2drZRvHhx44MPPrAcp2PHjsaIESPyrCWvHJ7jSc/DhhmJJT/l+xxC2dnwwQfwwgtw/DhUqgQ33ghhYRAUBCVL5u/5RPLR8ePHNTGiyJ8oEyLulAsRq/zIxNmsHOq+sCCfKvJMwkvXX/FCO7t372b+/PmEhIS4ti1cuJATJ07wxBNPuO3fq1cvatasyZQpUxg4cCDTp08nMzOT4cOH53n8okWL5rk9NzeXHj16kJqayv/+9z+qVatGQkICQUFBHtX//fffExMTw6JFi1yjll5//XV27dpFtWrVANiyZQubNm3iyy+/BOCDDz7gxRdf5N1336VJkyasX7+e++67j6ioKO655x4Ali9fzh133GE5V2pqKvfccw/jx48HYMyYMfTs2ZOdO3dSpEgR134vvvgir732GuPGjSMoKIgFCxZw5513Mn78eNq1a8euXbu4//77XfsCBAYGMn78eCpXrsyePXt48MEHGT58OBMmTLjga+/RowfLly+/6Ptz+vTpPLfv2bOHI0eOWOZICgsLo0OHDvz000/ceeedec4j1LZtW/73v/+xatUqWrZsye7du5k3b57rfTvnoYce4oYbbqBLly688sorlsfOreoXHh7u2hYUFERoaCgrVqxg8ODBru0tW7a85Gu8WmoI+aHc3PNDFKPD8vFbuGCBuWT8H9dOUqeOeXmYg2ZZF/+2fft2mjZtancZIj5DmRBxp1yIWDktE3PnziU6OpqcnBzX3C9jx451Pb5jxw4A6tSpk+fza9eu7dpn586dxMTEULZsWY9q+O6771i1ahVbt251TepdtWpVj19LVFQUkyZNIjQ01LWtYcOGfP755675fz777DNatGjhOs/LL7/MmDFj6Nu3LwBVqlQhISGB999/n3vuuYdTp05x6tQpypUrZznXddddZ7n//vvvU6xYMZYuXcqNN97o2n777bfz97//3XX/rrvu4umnn3Y1TapWrcrLL7/M8OHDXQ2hP8+xU6VKFV5++WUeeOCBizaEJk2axNmzZy/7vfqzI0eOAFCmTBnL9jJlyrBv3z7S09OJiopye96tt97K77//Ttu2bTEMg+zsbB544AGefvpp1z5Tp05l3bp1rF69Os9z165dm0qV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Nm3a5Pmc1q1bu+2/cOFCmjdvTkhISIHVKuINV5IJMEcGDRo0iM8//1zXvkuh4mkmYmJi2LRpExs2bHB9DRkyhFq1arFhwwZatWrlrdJFCsSV/Jy49tprOXz4MKdPn3Zt27FjB4GBgVSoUKFA6xXxhivJRVpaGoGB1l8Rg4KCgPOjIkScpND/nm2IT5o6daoREhJifPjhh0ZCQoIxbNgwIyoqyti7d69hGIbx9NNPG3fddZdr/927dxuRkZHGo48+aiQkJBgffvihERISYnz55Zd2vQSRfOVpJj7//HMjODjY+Pe//20kJia6vk6dOmXXSxDJV55m4q9efPFFo1GjRl6qVqTgeZqJ1NRUo0KFCka/fv2MLVu2GEuXLjVq1KhhDB482K6XIJLvPM3Fxx9/bAQHBxsTJkwwdu3aZaxYscJo3ry50bJlS7tegki+Sk1NNdavX2+sX7/eAIyxY8ca69evN/bt22cYhvN+z1ZDyIf9+9//NipVqmSEhoYaTZs2NZYuXep67J577jE6dOhg2X/JkiVGkyZNjNDQUKNy5crGxIkTvVyxSMHyJBMdOnQwALeve+65x/uFixQQT39O/JkaQlIYeZqJrVu3Gl26dDEiIiKMChUqGI899piRlpbm5apFCpanuRg/frxRt25dIyIiwihbtqxxxx13GAcPHvRy1SIFY/HixRf9HcFpv2cHGIbG/omIiIiIiIiIOInmEBIRERERERERcRg1hEREREREREREHEYNIRERERERERERh1FDSERERERERETEYdQQEhERERERERFxGDWEREREREREREQcRg0hERERERERERGHUUNIRERERERERMRh1BASERERnzV58mSKFi161ccZOXIkZcqUISAggNmzZ1/18XzV3r17CQgIYMOGDRfdr2PHjgwbNsx1Py0tjVtuuYWYmBgCAgI4derUFZ3/rrvuYvTo0Vf03KvxxBNPMHToUK+fV0RExJ+pISQiIuJAAQEBF/0aNGiQ3SXmm61btzJq1Cjef/99EhMT6dGjh90lFZj4+HgSExOpX78+AEuWLMmzwTNz5kxefvll1/3//ve/LF++nJ9++onExERiY2M9PvfGjRv55ptvePjhh13bOnbsmOffr+zsbLfHw8LCqFmzJqNHjyYnJ8dS/7mvEiVKcN111/Hjjz9azj18+HA+/vhj9uzZ43HdIiIiTqWGkIiIiAMlJia6vt555x1iYmIs2/7v//7P7hLzza5duwDo3bs3cXFxhIWF2VxRwQkKCiIuLo7g4OCL7le8eHGKFCniur9r1y7q1KlD/fr1iYuLIyAgwONzv/vuu/Tv399yXID77rvP8ncrMTHRUt+5x7dv387QoUN5/vnnefvtty3H2L59O4mJiSxZsoRSpUpxww03cOzYMdfjpUuXplu3brz33nse1y0iIuJUagiJiIg4UFxcnOsrNjaWgIAA1/2QkBCGDBlChQoViIyMpEGDBkyZMsXy/MqVK/POO+9YtjVu3JiRI0cC5siO0NBQli9f7np8zJgxlCxZksTExAvWNXnyZCpWrEhkZCQ333wzJ06ccNvn66+/plmzZoSHh1O1alVGjRrlGnHyVyNHjqRXr14ABAYGuhodq1evpmvXrpQsWZLY2Fg6dOjAunXrXM/L69KrU6dOERAQwJIlSwB46aWXKFeunKXGm266ifbt25Obm5tnPYMGDaJPnz6MGjWK0qVLExMTwz/+8Q8yMzNd+2RkZDB06FBKly5NeHg4bdu2ZfXq1a7HT548yR133EGpUqWIiIigRo0afPzxx2517927l06dOgFQrFgxy8ivP18y1rFjR8aMGcOyZcsICAigY8eOAEyYMIEaNWoQHh5OmTJl6NevX56vCSA3N5fp06dz0003uT0WGRlp+fsWFxeX5+OVK1fmn//8J507d3a7rK906dLExcXRoEEDnn/+eZKTk/nll18s+9x0001uf09FRETkwtQQEhEREYv09HSaNWvG3Llz2bx5M/fffz933XWX2y/gF3Ou4XDXXXeRnJzMr7/+ynPPPccHH3xA2bJl83zOL7/8wt///ncefPBBNmzYQKdOnXjllVcs+yxYsIA777yToUOHkpCQwPvvv8/kyZN59dVX8zzmE0884WqWnBudApCamso999zD8uXL+fnnn6lRowY9e/YkNTX1sl/jc889R+XKlRk8eDAA7733HsuWLePTTz8lMPDC/8T6/vvv2bp1K4sXL2bKlCnMmjWLUaNGuR4fPnw4M2bM4L///S/r1q2jevXqXH/99SQlJQEwYsQIEhIS+Pbbb9m6dSsTJ06kZMmSbueJj49nxowZwPkRNnmN/Jo5cyb33XcfrVu3JjExkZkzZ7JmzRqGDh3KSy+9xPbt25k/fz7t27e/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ROC curve\n", "\n", "# Calcul des taux de faux positifs (FPR) et de vrais positifs (TPR)\n", "y_pred_prob = logit_grid.predict_proba(X_test)[:, 1]\n", "\n", "fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label=1)\n", "\n", "# Calcul de l'aire sous la courbe ROC (AUC)\n", "roc_auc = auc(fpr, tpr)\n", "\n", "plt.figure(figsize = (14, 8))\n", "plt.plot(fpr, tpr, label=\"ROC curve(area = %0.3f)\" % roc_auc)\n", "plt.plot([0, 1], [0, 1], color=\"red\",label=\"Random Baseline\", linestyle=\"--\")\n", "plt.grid(color='gray', linestyle='--', linewidth=0.5)\n", "plt.xlabel('Taux de faux positifs (FPR)')\n", "plt.ylabel('Taux de vrais positifs (TPR)')\n", "plt.title('Courbe ROC : modèle logistique')\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.6" } }, "nbformat": 4, "nbformat_minor": 5 }