{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":8616088,"sourceType":"datasetVersion","datasetId":4906925}],"dockerImageVersionId":30732,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"### Logistic Regression\nLogistic regression is a **statistical method** used for modeling the relationship between a **binary dependent variable** and one or more independent variables. It estimates the **probability that a given input belongs to a certain class** by fitting data to a logistic curve, which maps any real-valued number into a **value between 0 and 1**. This makes logistic regression ideal for binary classification tasks, where the outcome can be either 0 or 1.  \n\n<img src=\"attachment:51b25e04-77d2-4776-b558-d6cab6e656c6.png\" width=\"450\"> \n\n<img src=\"attachment:b9997efc-034d-46d3-930d-f2ff295772de.png\" width=\"600\">  \n\n### Ridge Logistic Regression\nRidge logistic regression extends standard logistic regression by adding an **L2 regularization term** to the cost function, which penalizes the sum of the squared coefficients. This helps to address **multicollinearity** by **shrinking the coefficients**, reducing their variance, and **preventing overfitting**. The tuning parameter (1/C) controls the strength of the regularization, balancing the trade-off between fitting the training data and maintaining simplicity in the model.\n\n### Lasso Logistic Regression\nLasso logistic regression, or Least Absolute Shrinkage and Selection Operator, modifies the standard logistic regression by incorporating an **L1 regularization term**, which penalizes the sum of the absolute values of the coefficients. This penalty can **shrink some coefficients to exactly zero**, effectively performing **variable selection** and simplifying the model. Lasso logistic regression is particularly useful for **high-dimensional datasets**, as it identifies and retains only the most relevant predictors, enhancing model **interpretability** and **preventing overfitting**.   \n  \n### Elastic Net Logistic Regression\nElastic Net logistic regression combines the properties of both Ridge and Lasso regressions by **including both L1 and L2** regularization terms in the cost function. This hybrid approach allows Elastic Net to handle situations where there are correlations among variables better than either Ridge or Lasso alone. The **two tuning parameters**,provide flexibility in model tuning, enabling Elastic Net to perform **robust variable selection** while maintaining model **stability** and **prediction accuracy**.\n\n<img src=\"attachment:a8f3e972-6e7e-401d-9392-801c1e9ed890.png\" width=\"400\">","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19"},"attachments":{"a8f3e972-6e7e-401d-9392-801c1e9ed890.png":{"image/png":"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"},"b9997efc-034d-46d3-930d-f2ff295772de.png":{"image/png":"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"},"51b25e04-77d2-4776-b558-d6cab6e656c6.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"### Read the Data","metadata":{}},{"cell_type":"code","source":"import pandas as pd\n\n# Read the training datasets\nX_train_original = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_train_original.csv')\nX_train_original = X_train_original.set_index('Unnamed: 0')\n\nX_train_transformed = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_train_transformed.csv')\nX_train_transformed = X_train_transformed.set_index('Unnamed: 0')\n\nX_train_discretized = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_train_discretized.csv')\nX_train_discretized = X_train_discretized.set_index('Unnamed: 0')\n\n# Read the test datasets\nX_test_original = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_test_original.csv')\nX_test_original = X_test_original.set_index('Unnamed: 0')\n\nX_test_transformed = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_test_transformed.csv')\nX_test_transformed = X_test_transformed.set_index('Unnamed: 0')\n\nX_test_discretized = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/X_test_discretized.csv')\nX_test_discretized = X_test_discretized.set_index('Unnamed: 0')\n\n# Read the target variable for training and testing\ny_train = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/y_train.csv')\ny_train = y_train.set_index('Unnamed: 0').squeeze()\n\ny_test = pd.read_csv('/kaggle/input/bankloan-ready-to-modeling/y_test.csv')\ny_test = y_test.set_index('Unnamed: 0').squeeze() ","metadata":{"execution":{"iopub.status.busy":"2024-06-08T19:47:20.923139Z","iopub.execute_input":"2024-06-08T19:47:20.924235Z","iopub.status.idle":"2024-06-08T19:47:20.972185Z","shell.execute_reply.started":"2024-06-08T19:47:20.924197Z","shell.execute_reply":"2024-06-08T19:47:20.971125Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"markdown","source":"### Perform Standard, Ridge, and Lasso Logistic Regression \n\n**penalty**: {‘l1’, ‘l2’, ‘elasticnet’, None}, default=’l2’\n\nSpecify the norm of the penalty:\n\n* **None**: no penalty is added;\n\n* **'l2'**: add a L2 penalty term and it is the default choice;\n\n* **'l1'**: add a L1 penalty term;\n\n* **'elasticnet'**: both L1 and L2 penalty terms are added.\n\n**C**: float, default=1.0\nInverse of regularization strength; must be a positive float. Like in support vector machines, smaller values specify stronger regularization.","metadata":{}},{"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import confusion_matrix, classification_report\n\nmodel = LogisticRegression(penalty=None, C=1.0, fit_intercept=True, class_weight='balanced',l1_ratio=None)\nmodel.fit(X_train_original, y_train)\n\ny_pred_train = model.predict(X_train_original)\ny_pred_test = model.predict(X_test_original)\ny_prob_test = model.predict_proba(X_test_original)\n\ncm_train = confusion_matrix(y_train, y_pred_train)\nreport_train = classification_report(y_train, y_pred_train)\n\ncm_test = confusion_matrix(y_test, y_pred_test)\nreport_test = classification_report(y_test, y_pred_test)\n\nprint(\"Evaluation the Model on Training Set\")\nprint(f\"Confusion Matrix:\\n{cm_train}\")\nprint(f\"Classification Report:\\n{report_train}\")\nprint(\"-\"*80)\nprint(\"Evaluation the Model on Testing Set\")\nprint(f\"Confusion Matrix:\\n{cm_test}\")\nprint(f\"Classification Report:\\n{report_test}\")","metadata":{"trusted":true},"execution_count":12,"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":"array([[5.26374887e-01, 4.73625113e-01],\n       [7.43113228e-01, 2.56886772e-01],\n       [6.66718798e-01, 3.33281202e-01],\n       [4.73787038e-01, 5.26212962e-01],\n       [3.53703067e-01, 6.46296933e-01],\n       [3.97664555e-02, 9.60233545e-01],\n       [7.18812029e-01, 2.81187971e-01],\n       [1.31092788e-01, 8.68907212e-01],\n       [3.28076290e-01, 6.71923710e-01],\n       [3.27689917e-01, 6.72310083e-01],\n       [6.41897221e-01, 3.58102779e-01],\n       [7.29537162e-01, 2.70462838e-01],\n       [2.95836538e-01, 7.04163462e-01],\n       [7.69755878e-01, 2.30244122e-01],\n       [7.47046856e-01, 2.52953144e-01],\n       [2.97428707e-02, 9.70257129e-01],\n       [9.25386152e-01, 7.46138476e-02],\n       [2.03810833e-01, 7.96189167e-01],\n       [9.73409076e-01, 2.65909244e-02],\n       [3.88788116e-01, 6.11211884e-01],\n       [2.16559475e-01, 7.83440525e-01],\n       [8.82226236e-01, 1.17773764e-01],\n       [9.95745106e-01, 4.25489450e-03],\n       [1.69530191e-01, 8.30469809e-01],\n       [7.15197972e-01, 2.84802028e-01],\n       [9.60435894e-01, 3.95641055e-02],\n       [1.48398352e-01, 8.51601648e-01],\n       [1.00260465e-02, 9.89973953e-01],\n       [4.64267682e-01, 5.35732318e-01],\n       [3.14566284e-01, 6.85433716e-01],\n       [1.28526154e-01, 8.71473846e-01],\n       [7.48753653e-01, 2.51246347e-01],\n       [5.55235414e-01, 4.44764586e-01],\n       [9.48208126e-01, 5.17918739e-02],\n       [7.67729749e-01, 2.32270251e-01],\n       [9.53210686e-01, 4.67893135e-02],\n       [5.14844943e-01, 4.85155057e-01],\n       [4.21839470e-01, 5.78160530e-01],\n       [1.32603216e-01, 8.67396784e-01],\n       [8.28513526e-01, 1.71486474e-01],\n       [6.59563146e-01, 3.40436854e-01],\n       [7.63381655e-01, 2.36618345e-01],\n       [6.03417285e-01, 3.96582715e-01],\n       [3.47118087e-01, 6.52881913e-01],\n       [7.99102585e-01, 2.00897415e-01],\n       [1.16823939e-01, 8.83176061e-01],\n       [5.28380544e-01, 4.71619456e-01],\n       [3.69480049e-01, 6.30519951e-01],\n       [5.94517268e-01, 4.05482732e-01],\n       [9.56185715e-01, 4.38142852e-02],\n       [9.78767875e-01, 2.12321250e-02],\n       [2.65429069e-01, 7.34570931e-01],\n       [9.32549440e-01, 6.74505597e-02],\n       [9.58176970e-01, 4.18230301e-02],\n       [7.89504813e-01, 2.10495187e-01],\n       [9.97363491e-01, 2.63650878e-03],\n       [7.98713097e-01, 2.01286903e-01],\n       [9.03080867e-01, 9.69191334e-02],\n       [4.79032867e-01, 5.20967133e-01],\n       [9.82875754e-01, 1.71242460e-02],\n       [9.64389046e-01, 3.56109536e-02],\n       [4.39965746e-01, 5.60034254e-01],\n       [3.32954250e-01, 6.67045750e-01],\n       [9.30421731e-01, 6.95782688e-02],\n       [2.54518124e-02, 9.74548188e-01],\n       [9.60859796e-01, 3.91402043e-02],\n       [9.82434035e-01, 1.75659645e-02],\n       [7.47622022e-01, 2.52377978e-01],\n       [9.01243293e-01, 9.87567065e-02],\n       [9.17386018e-01, 8.26139823e-02],\n       [4.98001541e-01, 5.01998459e-01],\n       [9.46862944e-01, 5.31370560e-02],\n       [8.46409418e-01, 1.53590582e-01],\n       [9.24017129e-01, 7.59828705e-02],\n       [6.35123516e-01, 3.64876484e-01],\n       [1.71213087e-01, 8.28786913e-01],\n       [8.94313413e-01, 1.05686587e-01],\n       [8.42362727e-01, 1.57637273e-01],\n       [9.63729123e-01, 3.62708771e-02],\n       [8.74830699e-01, 1.25169301e-01],\n       [5.25741356e-01, 4.74258644e-01],\n       [4.76791288e-01, 5.23208712e-01],\n       [7.02120003e-01, 2.97879997e-01],\n       [3.90010898e-01, 6.09989102e-01],\n       [9.91541827e-01, 8.45817275e-03],\n       [7.45399794e-01, 2.54600206e-01],\n       [9.01425821e-01, 9.85741787e-02],\n       [3.18948180e-01, 6.81051820e-01],\n       [5.45082878e-02, 9.45491712e-01],\n       [6.04258474e-01, 3.95741526e-01],\n       [6.30935616e-01, 3.69064384e-01],\n       [6.90574432e-01, 3.09425568e-01],\n       [9.90861846e-01, 9.13815439e-03],\n       [6.28033981e-01, 3.71966019e-01],\n       [3.26892832e-01, 6.73107168e-01],\n       [3.42498505e-01, 6.57501495e-01],\n       [1.76922596e-01, 8.23077404e-01],\n       [8.79313140e-01, 1.20686860e-01],\n       [1.94587983e-01, 8.05412017e-01],\n       [3.25907911e-04, 9.99674092e-01],\n       [4.16680858e-01, 5.83319142e-01],\n       [7.31534776e-01, 2.68465224e-01],\n       [3.72542323e-01, 6.27457677e-01],\n       [7.06036728e-01, 2.93963272e-01],\n       [3.54837613e-01, 6.45162387e-01],\n       [4.38031998e-01, 5.61968002e-01],\n       [9.84717982e-01, 1.52820177e-02],\n       [8.32567923e-01, 1.67432077e-01],\n       [4.68937165e-01, 5.31062835e-01],\n       [4.03683537e-01, 5.96316463e-01],\n       [7.17537729e-01, 2.82462271e-01],\n       [9.79179592e-01, 2.08204082e-02],\n       [9.02571676e-01, 9.74283235e-02],\n       [7.83665296e-01, 2.16334704e-01],\n       [2.46228531e-01, 7.53771469e-01],\n       [6.92050860e-01, 3.07949140e-01],\n       [2.87808773e-01, 7.12191227e-01],\n       [8.06216587e-01, 1.93783413e-01],\n       [7.88834915e-01, 2.11165085e-01],\n       [8.79492132e-01, 1.20507868e-01],\n       [5.97179425e-01, 4.02820575e-01],\n       [6.50776111e-01, 3.49223889e-01],\n       [9.36844539e-01, 6.31554613e-02],\n       [6.76538330e-01, 3.23461670e-01],\n       [9.00735552e-02, 9.09926445e-01],\n       [3.16588803e-01, 6.83411197e-01],\n       [4.13191501e-01, 5.86808499e-01],\n       [5.80073188e-01, 4.19926812e-01],\n       [1.61116728e-01, 8.38883272e-01],\n       [7.15859983e-01, 2.84140017e-01],\n       [9.65746127e-01, 3.42538731e-02],\n       [8.59642701e-01, 1.40357299e-01],\n       [1.51434593e-01, 8.48565407e-01],\n       [5.53925988e-01, 4.46074012e-01],\n       [1.79876990e-01, 8.20123010e-01],\n       [2.13973916e-01, 7.86026084e-01],\n       [9.83232816e-01, 1.67671837e-02],\n       [3.57002527e-01, 6.42997473e-01],\n       [1.35967959e-01, 8.64032041e-01],\n       [7.98513423e-01, 2.01486577e-01],\n       [8.42256974e-01, 1.57743026e-01],\n       [8.01080130e-01, 1.98919870e-01],\n       [3.96029347e-01, 6.03970653e-01],\n       [9.95714605e-01, 4.28539488e-03],\n       [7.58180411e-01, 2.41819589e-01],\n       [2.75692045e-01, 7.24307955e-01],\n       [2.86813745e-01, 7.13186255e-01],\n       [3.74216465e-01, 6.25783535e-01],\n       [9.09322104e-01, 9.06778955e-02],\n       [8.54620648e-01, 1.45379352e-01],\n       [8.41374712e-01, 1.58625288e-01],\n       [5.94391029e-01, 4.05608971e-01],\n       [9.66268841e-01, 3.37311595e-02],\n       [6.59607117e-01, 3.40392883e-01],\n       [1.30668383e-01, 8.69331617e-01],\n       [2.35629398e-01, 7.64370602e-01],\n       [1.20211311e-01, 8.79788689e-01],\n       [2.75735680e-01, 7.24264320e-01],\n       [8.80236900e-01, 1.19763100e-01],\n       [2.32307430e-02, 9.76769257e-01],\n       [1.07937290e-01, 8.92062710e-01],\n       [4.72009304e-01, 5.27990696e-01],\n       [9.63905531e-01, 3.60944688e-02],\n       [3.61406159e-01, 6.38593841e-01],\n       [3.98483047e-01, 6.01516953e-01],\n       [8.54880632e-01, 1.45119368e-01],\n       [6.06569699e-01, 3.93430301e-01],\n       [1.40002420e-01, 8.59997580e-01],\n       [9.05279280e-01, 9.47207202e-02],\n       [1.33321906e-01, 8.66678094e-01],\n       [2.15534242e-01, 7.84465758e-01],\n       [7.57529085e-01, 2.42470915e-01],\n       [4.06222404e-01, 5.93777596e-01],\n       [7.39978846e-01, 2.60021154e-01],\n       [9.67625583e-01, 3.23744171e-02],\n       [7.24615624e-01, 2.75384376e-01],\n       [9.09788783e-01, 9.02112172e-02],\n       [5.31373883e-01, 4.68626117e-01],\n       [7.47524768e-01, 2.52475232e-01],\n       [8.69271351e-01, 1.30728649e-01],\n       [2.32841632e-01, 7.67158368e-01],\n       [5.36566332e-01, 4.63433668e-01],\n       [7.96800355e-01, 2.03199645e-01],\n       [8.84521628e-01, 1.15478372e-01],\n       [8.48842090e-01, 1.51157910e-01],\n       [9.70367351e-01, 2.96326495e-02],\n       [5.71739055e-01, 4.28260945e-01],\n       [9.62098063e-01, 3.79019371e-02],\n       [8.91418178e-01, 1.08581822e-01],\n       [7.41257920e-01, 2.58742080e-01],\n       [5.29725454e-01, 4.70274546e-01],\n       [3.89201207e-01, 6.10798793e-01],\n       [6.98867269e-01, 3.01132731e-01],\n       [8.68610709e-01, 1.31389291e-01],\n       [2.38577901e-01, 7.61422099e-01],\n       [2.99184993e-01, 7.00815007e-01],\n       [7.35192914e-01, 2.64807086e-01],\n       [9.95961094e-01, 4.03890618e-03],\n       [8.72268435e-01, 1.27731565e-01],\n       [8.04233875e-01, 1.95766125e-01],\n       [9.38939735e-01, 6.10602653e-02],\n       [2.02392351e-01, 7.97607649e-01],\n       [8.28713105e-01, 1.71286895e-01],\n       [5.48137681e-01, 4.51862319e-01],\n       [6.28765161e-01, 3.71234839e-01],\n       [3.92114407e-01, 6.07885593e-01],\n       [8.67856271e-01, 1.32143729e-01],\n       [7.82761318e-01, 2.17238682e-01],\n       [4.43756398e-01, 5.56243602e-01],\n       [9.92807041e-01, 7.19295912e-03]])"},"metadata":{}}]},{"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import confusion_matrix, classification_report\n\nmodel = LogisticRegression(penalty=None, C=1.0, fit_intercept=True, class_weight='balanced',l1_ratio=None)\nmodel.fit(X_train_transformed, y_train)\n\ny_pred_train = model.predict(X_train_transformed)\ny_pred_test = model.predict(X_test_transformed)\ny_prob_test = model.predict_proba (X_test_transformed)\n\ncm_train = confusion_matrix(y_train, y_pred_train)\nreport_train = classification_report(y_train, y_pred_train)\n\ncm_test = confusion_matrix(y_test, y_pred_test)\nreport_test = classification_report(y_test, y_pred_test)\n\nprint(\"Evaluation the Model on Training Set\")\nprint(f\"Confusion Matrix:\\n{cm_train}\")\nprint(f\"Classification Report:\\n{report_train}\")\nprint(\"-\"*80)\nprint(\"Evaluation the Model on Testing Set\")\nprint(f\"Confusion Matrix:\\n{cm_test}\")\nprint(f\"Classification Report:\\n{report_test}\")","metadata":{"execution":{"iopub.status.busy":"2024-06-08T19:54:44.519275Z","iopub.execute_input":"2024-06-08T19:54:44.519711Z","iopub.status.idle":"2024-06-08T19:54:44.557425Z","shell.execute_reply.started":"2024-06-08T19:54:44.519671Z","shell.execute_reply":"2024-06-08T19:54:44.556345Z"},"trusted":true},"execution_count":13,"outputs":[{"name":"stdout","text":"Evaluation the Model on Training Set\nConfusion Matrix:\n[[274  90]\n [ 25  96]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.92      0.75      0.83       364\n           1       0.52      0.79      0.63       121\n\n    accuracy                           0.76       485\n   macro avg       0.72      0.77      0.73       485\nweighted avg       0.82      0.76      0.78       485\n\n--------------------------------------------------------------------------------\nEvaluation the Model on Testing Set\nConfusion Matrix:\n[[119  34]\n [ 16  41]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.88      0.78      0.83       153\n           1       0.55      0.72      0.62        57\n\n    accuracy                           0.76       210\n   macro avg       0.71      0.75      0.72       210\nweighted avg       0.79      0.76      0.77       210\n\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import confusion_matrix, classification_report\n\nmodel = LogisticRegression(penalty=None, C=1.0, fit_intercept=True, class_weight='balanced',l1_ratio=None)\nmodel.fit(X_train_discretized, y_train)\n\ny_pred_train = model.predict(X_train_discretized)\ny_pred_test = model.predict(X_test_discretized)\ny_prob_test = model.predict_proba (X_test_discretized)\n\ncm_train = confusion_matrix(y_train, y_pred_train)\nreport_train = classification_report(y_train, y_pred_train)\n\ncm_test = confusion_matrix(y_test, y_pred_test)\nreport_test = classification_report(y_test, y_pred_test)\n\nprint(\"Evaluation the Model on Training Set\")\nprint(f\"Confusion Matrix:\\n{cm_train}\")\nprint(f\"Classification Report:\\n{report_train}\")\nprint(\"-\"*80)\nprint(\"Evaluation the Model on Testing Set\")\nprint(f\"Confusion Matrix:\\n{cm_test}\")\nprint(f\"Classification Report:\\n{report_test}\")","metadata":{"execution":{"iopub.status.busy":"2024-06-08T19:55:21.663724Z","iopub.execute_input":"2024-06-08T19:55:21.664115Z","iopub.status.idle":"2024-06-08T19:55:21.703173Z","shell.execute_reply.started":"2024-06-08T19:55:21.664084Z","shell.execute_reply":"2024-06-08T19:55:21.702010Z"},"trusted":true},"execution_count":14,"outputs":[{"name":"stdout","text":"Evaluation the Model on Training Set\nConfusion Matrix:\n[[264 100]\n [ 34  87]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.89      0.73      0.80       364\n           1       0.47      0.72      0.56       121\n\n    accuracy                           0.72       485\n   macro avg       0.68      0.72      0.68       485\nweighted avg       0.78      0.72      0.74       485\n\n--------------------------------------------------------------------------------\nEvaluation the Model on Testing Set\nConfusion Matrix:\n[[118  35]\n [ 16  41]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.88      0.77      0.82       153\n           1       0.54      0.72      0.62        57\n\n    accuracy                           0.76       210\n   macro avg       0.71      0.75      0.72       210\nweighted avg       0.79      0.76      0.77       210\n\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import confusion_matrix, classification_report, f1_score, make_scorer\nimport numpy as np\n\n# Define a custom scorer for class '1' F1-score\ndef custom_f1_scorer(y_true, y_pred):\n    return f1_score(y_true, y_pred, pos_label=1)\n\ncustom_scorer = make_scorer(custom_f1_scorer)\n\n# Define the parameter grid, excluding 'none' for penalty\nparam_grid = [\n    {'penalty': ['l1'], 'C': [0.01, 0.1, 1.0, 10, 100], 'l1_ratio': [None], 'solver':['liblinear','saga']},  # l1 doesn't use l1_ratio\n    {'penalty': ['l2'], 'C': [0.01, 0.1, 1.0, 10, 100], 'l1_ratio': [None], 'solver':['lbfgs','saga']},  # l2 doesn't use l1_ratio\n    {'penalty': ['elasticnet'], 'C': [0.01, 0.1, 1.0, 10, 100], 'l1_ratio': [0, 0.25, 0.5, 0.75, 1], 'solver':['saga']},  # elasticnet uses l1_ratio\n    {'penalty': [None], 'C': [1.0], 'l1_ratio': [None], 'solver':['lbfgs','saga']}  # No penalty scenario\n]\n\n# Initialize the logistic regression model\nlogistic = LogisticRegression(fit_intercept=True, class_weight='balanced', max_iter=10000)\n\n# Initialize GridSearchCV\ngrid_search = GridSearchCV(estimator=logistic, param_grid=param_grid, cv=5, scoring=custom_scorer, n_jobs=-1)\n\n# Fit the model\ngrid_search.fit(X_train_discretized, y_train)\n\n# Get the best model\nbest_model = grid_search.best_estimator_\n\n# Predict on training data\ny_pred_train = best_model.predict(X_train_discretized)\ny_pred_test = best_model.predict(X_test_discretized)\n\n# Evaluate the model\ncm_train = confusion_matrix(y_train, y_pred_train)\nreport_train = classification_report(y_train, y_pred_train)\n\ncm_test = confusion_matrix(y_test, y_pred_test)\nreport_test = classification_report(y_test, y_pred_test)\n\nprint(\"Best Parameters:\", grid_search.best_params_)\nprint(\"Evaluation of the Best Model on Training Set\")\nprint(f\"Confusion Matrix:\\n{cm_train}\")\nprint(f\"Classification Report:\\n{report_train}\")\nprint(\"-\" * 80)\nprint(\"Evaluation of the Best Model on Testing Set\")\nprint(f\"Confusion Matrix:\\n{cm_test}\")\nprint(f\"Classification Report:\\n{report_test}\")\n","metadata":{"execution":{"iopub.status.busy":"2024-06-08T20:02:49.399579Z","iopub.execute_input":"2024-06-08T20:02:49.400053Z","iopub.status.idle":"2024-06-08T20:02:52.544271Z","shell.execute_reply.started":"2024-06-08T20:02:49.400009Z","shell.execute_reply":"2024-06-08T20:02:52.543025Z"},"trusted":true},"execution_count":15,"outputs":[{"name":"stdout","text":"Best Parameters: {'C': 0.1, 'l1_ratio': 0.5, 'penalty': 'elasticnet', 'solver': 'saga'}\nEvaluation of the Best Model on Training Set\nConfusion Matrix:\n[[264 100]\n [ 38  83]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.87      0.73      0.79       364\n           1       0.45      0.69      0.55       121\n\n    accuracy                           0.72       485\n   macro avg       0.66      0.71      0.67       485\nweighted avg       0.77      0.72      0.73       485\n\n--------------------------------------------------------------------------------\nEvaluation of the Best Model on Testing Set\nConfusion Matrix:\n[[117  36]\n [ 17  40]]\nClassification Report:\n              precision    recall  f1-score   support\n\n           0       0.87      0.76      0.82       153\n           1       0.53      0.70      0.60        57\n\n    accuracy                           0.75       210\n   macro avg       0.70      0.73      0.71       210\nweighted avg       0.78      0.75      0.76       210\n\n","output_type":"stream"}]}]}