diff --git a/docs/paper/benchmark.py b/docs/paper/benchmark.py new file mode 100644 index 0000000..09cb8af --- /dev/null +++ b/docs/paper/benchmark.py @@ -0,0 +1,163 @@ +from typing import List +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +from boruta import BorutaPy +from sklearn.feature_selection import RFE +from sklearn.metrics import accuracy_score, f1_score +from sklearn.model_selection import train_test_split +import xgboost as xgb +import time +from shap_select import shap_select +import hisel +from shap_selection import feature_selection +from skfeature.function.information_theoretical_based import MRMR + +RANDOM_SEED = 42 +np.random.seed(RANDOM_SEED) + +# Global XGBoost parameters for consistency +XGB_PARAMS = { + "objective": "binary:logistic", + "eval_metric": "logloss", + "verbosity": 0, + "seed": RANDOM_SEED, + "nthread": 1, +} + + +# Define common XGBoost model +def train_xgboost(X_train, y_train): + dtrain = xgb.DMatrix(X_train, label=y_train) + xgb_model = xgb.train(XGB_PARAMS, dtrain, num_boost_round=100) + return xgb_model + + +def predict_xgboost(xgb_model, X_val): + dval = xgb.DMatrix(X_val) + y_pred = (xgb_model.predict(dval) > 0.5).astype(int) + return y_pred + + +# HISEL feature selection using MRMR +def hisel_feature_selection(xgb_model, X_train, X_val, y_train, y_val, n_features): + return hisel.feature_selection.select_features(X_train, y_train) + + +def shap_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]: + selected_shap_selection, _ = feature_selection.shap_select( + xgb_model, X_train, X_val, X_train.columns, agnostic=False + ) + selected_shap_selection = selected_shap_selection[:n_features] # Why 15? + return selected_shap_selection + + +def shap_select_selection( + xgb_model, X_train, X_val, y_train, y_val, n_features +) -> List[str]: + shap_features, _ = shap_select( + xgb_model, + X_val, + y_val, + task="binary", + alpha=1e-6, + threshold=0.05, + return_extended_data=True, + ) + selected_features = shap_features[shap_features["selected"] == 1][ + "feature name" + ].tolist() + return selected_features + + +def no_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]: + return list(X_train.columns) + + +def rfe_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]: + rfe = RFE( + xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False), + n_features_to_select=n_features, + ) + rfe.fit(X_train, y_train) + selected_rfe = X_train.columns[rfe.support_] + return selected_rfe + + +def boruta_selection( + xgb_model, X_train, X_val, y_train, y_val, n_features +) -> List[str]: + rf_model = xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False) + boruta_selector = BorutaPy(rf_model, n_estimators=100, random_state=RANDOM_SEED) + boruta_selector.fit(X_train.values, y_train.values) + selected_boruta = X_train.columns[boruta_selector.support_].tolist() + return selected_boruta + + +method_dict = { + "No selection": no_selection, + "shap-select": shap_select_selection, + "shap-selection": shap_selection, + "HISEL": hisel_feature_selection, + "Boruta": boruta_selection, + "RFE": rfe_selection, +} + + +# Run experiments with different feature selection methods and shap-select p-values +def run_experiments(X_train, X_val, X_test, y_train, y_val, y_test): + results = [] + pretrained_model = None + + for name, fun in method_dict.items(): + print(f"\n--- {name} ---") + start_time = time.time() + selected = fun(pretrained_model, X_train, X_val, y_train, y_val, n_features=15) + + runtime = time.time() - start_time + print( + f"{name} completed in {runtime:.2f} seconds with {len(selected)} features." + ) + + this_model = train_xgboost(X_train[selected], y_train) + + if name == "No selection": + pretrained_model = this_model + + y_pred = predict_xgboost(this_model, X_test[selected]) + results.append( + { + "Method": name, + "Selected Features": selected, + "Accuracy": accuracy_score(y_test, y_pred), + "F1 Score": f1_score(y_test, y_pred), + "Runtime (s)": runtime, + } + ) + + # assert set(X_train.columns) == set(selected_hisel), "Feature sets differ!" + + results_df = pd.DataFrame(results) + print("\n--- Experiment Results ---") + print(results_df) + return results_df, pretrained_model + + +if __name__ == "__main__": + print("Loading dataset...") + df = pd.read_csv("creditcard.csv") + X = df.drop(columns=["Class"]) + y = df["Class"] + # Perform a 60-20-20 split for train, validation, and test sets + X_train_full, X_test, y_train_full, y_test = train_test_split( + X, y, test_size=0.2, random_state=RANDOM_SEED + ) + X_train, X_val, y_train, y_val = train_test_split( + X_train_full, y_train_full, test_size=0.25, random_state=RANDOM_SEED + ) + + results_df, trained_model = run_experiments( + X_train, X_val, X_test, y_train, y_val, y_test + ) + print(results_df) + print("yay!") diff --git a/docs/paper/shapley_select_paper_experiment.ipynb b/docs/paper/shapley_select_paper_experiment.ipynb new file mode 100644 index 0000000..cbd78d6 --- /dev/null +++ b/docs/paper/shapley_select_paper_experiment.ipynb @@ -0,0 +1,2239 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Could not import cupy!\n" + ] + } + ], + "source": [ + "from typing import List\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from boruta import BorutaPy\n", + "from sklearn.feature_selection import RFE\n", + "from sklearn.metrics import accuracy_score, f1_score, roc_auc_score, average_precision_score\n", + "from sklearn.model_selection import train_test_split\n", + "import xgboost as xgb\n", + "import time\n", + "from shap_select import shap_select\n", + "import hisel\n", + "from shap_selection import feature_selection\n", + "from skfeature.function.information_theoretical_based import MRMR\n", + "\n", + "RANDOM_SEED = 42\n", + "np.random.seed(RANDOM_SEED)\n", + "\n", + "# Global XGBoost parameters for consistency\n", + "XGB_PARAMS = {\n", + " \"objective\": \"binary:logistic\",\n", + " \"eval_metric\": \"logloss\",\n", + " \"verbosity\": 0,\n", + " \"seed\": RANDOM_SEED,\n", + " \"nthread\": 1,\n", + "}\n", + "\n", + "\n", + "# Define common XGBoost model\n", + "def train_xgboost(X_train, y_train, X_val, y_val):\n", + " dtrain = xgb.DMatrix(X_train, label=y_train)\n", + " dval = xgb.DMatrix(X_val, label=y_val)\n", + " xgb_model = xgb.train(XGB_PARAMS, \n", + " dtrain, \n", + " num_boost_round=100, #0, \n", + "# evals=[(dval, \"valid\")], \n", + "# early_stopping_rounds=10\n", + " )\n", + " return xgb_model\n", + "\n", + "\n", + "# # HISEL feature selection using Claudio's HISEL\n", + "# def hisel_feature_selection(xgb_model, X_train, X_val, y_train, y_val, n_features):\n", + "# return hisel.feature_selection.select_features(X_train, y_train)\n", + "\n", + "# HISEL feature selection using MRMR\n", + "def hisel_feature_selection(xgb_model, X_train, X_val, y_train, y_val, n_features):\n", + " selected_idx = MRMR.mrmr(X_train.values, y_train.values, n_selected_features=n_features)\n", + " return X_train.columns[selected_idx].tolist()\n", + "\n", + "\n", + "def shap_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]:\n", + " selected_shap_selection, _ = feature_selection.shap_select(\n", + " xgb_model, X_train, X_val, X_train.columns, agnostic=False\n", + " )\n", + " selected_shap_selection = selected_shap_selection[:n_features] # Why 15?\n", + " return selected_shap_selection\n", + "\n", + "\n", + "def shap_select_selection(\n", + " xgb_model, X_train, X_val, y_train, y_val, n_features\n", + ") -> List[str]:\n", + " shap_features, _ = shap_select(\n", + " xgb_model,\n", + " X_val,\n", + " y_val,\n", + " task=\"binary\",\n", + " alpha=1e-6,\n", + " threshold=0.05,\n", + " return_extended_data=True,\n", + " )\n", + " selected_features = shap_features[shap_features[\"selected\"] == 1][\n", + " \"feature name\"\n", + " ].tolist()\n", + " return selected_features\n", + "\n", + "\n", + "def no_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]:\n", + " return list(X_train.columns)\n", + "\n", + "\n", + "def rfe_selection(xgb_model, X_train, X_val, y_train, y_val, n_features) -> List[str]:\n", + " rfe = RFE(\n", + " xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False),\n", + " n_features_to_select=n_features,\n", + " )\n", + " rfe.fit(X_train, y_train)\n", + " selected_rfe = X_train.columns[rfe.support_]\n", + " return selected_rfe\n", + "\n", + "\n", + "def boruta_selection(\n", + " xgb_model, X_train, X_val, y_train, y_val, n_features\n", + ") -> List[str]:\n", + " rf_model = xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False)\n", + " boruta_selector = BorutaPy(rf_model, n_estimators=100, random_state=RANDOM_SEED)\n", + " boruta_selector.fit(X_train.values, y_train.values)\n", + " selected_boruta = X_train.columns[boruta_selector.support_].tolist()\n", + " return selected_boruta\n", + "\n", + "\n", + "method_dict = {\n", + " \"No selection\": no_selection,\n", + " \"shap-select\": shap_select_selection,\n", + " \"shap-selection\": shap_selection,\n", + " \"HISEL\": hisel_feature_selection,\n", + " \"Boruta\": boruta_selection,\n", + " \"RFE\": rfe_selection,\n", + "}\n", + "\n", + "\n", + "# Run experiments with different feature selection methods and shap-select p-values\n", + "def run_experiments(X_train, X_val, X_test, y_train, y_val, y_test):\n", + " results = []\n", + " pretrained_model = None\n", + "\n", + " for name, fun in method_dict.items():\n", + " print(f\"\\n--- {name} ---\")\n", + " start_time = time.time()\n", + " selected = fun(pretrained_model, X_train, X_val, y_train, y_val, n_features=15)\n", + "\n", + " runtime = time.time() - start_time\n", + " print(\n", + " f\"{name} completed in {runtime:.2f} seconds with {len(selected)} features.\"\n", + " )\n", + "\n", + " this_model = train_xgboost(X_train[selected], y_train, X_val[selected], y_val)\n", + "\n", + " if name == \"No selection\":\n", + " pretrained_model = this_model\n", + " \n", + " dtest = xgb.DMatrix(X_test[selected])\n", + " y_pred = this_model.predict(dtest)\n", + " y_pred_int = (y_pred > 0.5).astype(int)\n", + " \n", + " entry = {\n", + " \"Method\": name,\n", + " \"Selected Features\": selected,\n", + " \"Accuracy\": accuracy_score(y_test, y_pred_int),\n", + " \"F1\": f1_score(y_test, y_pred_int),\n", + " \"AUC-ROC\": roc_auc_score(y_test, y_pred),\n", + " \"AUC-PR\": average_precision_score(y_test, y_pred),\n", + " \"Runtime (s)\": runtime,\n", + " }\n", + " results.append(entry)\n", + " print(entry)\n", + "\n", + " # assert set(X_train.columns) == set(selected_hisel), \"Feature sets differ!\"\n", + "\n", + " results_df = pd.DataFrame(results)\n", + " print(\"\\n--- Experiment Results ---\")\n", + " print(results_df)\n", + " return results_df, pretrained_model\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading dataset...\n", + "\n", + "--- No selection ---\n", + "No selection completed in 0.00 seconds with 30 features.\n", + "{'Method': 'No selection', 'Selected Features': ['Time', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9', 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19', 'V20', 'V21', 'V22', 'V23', 'V24', 'V25', 'V26', 'V27', 'V28', 'Amount'], 'Accuracy': 0.9995611109160493, 'F1': np.float64(0.8587570621468926), 'AUC-ROC': np.float64(0.9797944325451059), 'AUC-PR': np.float64(0.8870205769667971), 'Runtime (s)': 0.0}\n", + "\n", + "--- shap-select ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "shap-select completed in 32.62 seconds with 6 features.\n", + "{'Method': 'shap-select', 'Selected Features': ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time'], 'Accuracy': 0.9995962220427653, 'F1': np.float64(0.8700564971751412), 'AUC-ROC': np.float64(0.9790335767114949), 'AUC-PR': np.float64(0.8515621907585017), 'Runtime (s)': 32.62142610549927}\n", + "\n", + "--- shap-selection ---\n", + "shap-selection completed in 17.68 seconds with 15 features.\n", + "{'Method': 'shap-selection', 'Selected Features': Index(['V4', 'V14', 'V12', 'V7', 'Amount', 'V10', 'V3', 'V6', 'V16', 'Time',\n", + " 'V27', 'V8', 'V24', 'V26', 'V21'],\n", + " dtype='object'), 'Accuracy': 0.9995962220427653, 'F1': np.float64(0.8685714285714285), 'AUC-ROC': np.float64(0.9770026838112847), 'AUC-PR': np.float64(0.8856946371391639), 'Runtime (s)': 17.67718768119812}\n", + "\n", + "--- HISEL ---\n", + "HISEL completed in 396.38 seconds with 30 features.\n", + "{'Method': 'HISEL', 'Selected Features': ['V28', 'Time', 'Amount', 'V27', 'V26', 'V25', 'V24', 'V23', 'V22', 'V21', 'V20', 'V19', 'V18', 'V17', 'V16', 'V15', 'V2', 'V12', 'V10', 'V7', 'V1', 'V4', 'V3', 'V5', 'V6', 'V13', 'V9', 'V8', 'V11', 'V14'], 'Accuracy': 0.9995962220427653, 'F1': np.float64(0.8685714285714285), 'AUC-ROC': np.float64(0.982856697828259), 'AUC-PR': np.float64(0.8867712854666588), 'Runtime (s)': 396.37697553634644}\n", + "\n", + "--- Boruta ---\n", + "Boruta completed in 303.70 seconds with 11 features.\n", + "{'Method': 'Boruta', 'Selected Features': ['Time', 'V1', 'V4', 'V7', 'V8', 'V10', 'V12', 'V14', 'V16', 'V17', 'Amount'], 'Accuracy': 0.9996313331694814, 'F1': np.float64(0.8813559322033898), 'AUC-ROC': np.float64(0.9753177649788108), 'AUC-PR': np.float64(0.8891641869225111), 'Runtime (s)': 303.69580268859863}\n", + "\n", + "--- RFE ---\n", + "RFE completed in 40.40 seconds with 15 features.\n", + "{'Method': 'RFE', 'Selected Features': Index(['Time', 'V1', 'V3', 'V4', 'V7', 'V8', 'V10', 'V11', 'V12', 'V14', 'V16',\n", + " 'V17', 'V18', 'V26', 'Amount'],\n", + " dtype='object'), 'Accuracy': 0.9995611109160493, 'F1': np.float64(0.8571428571428571), 'AUC-ROC': np.float64(0.97179862730123), 'AUC-PR': np.float64(0.8932679288743448), 'Runtime (s)': 40.4037344455719}\n", + "\n", + "--- Experiment Results ---\n", + " Method Selected Features \\\n", + "0 No selection [Time, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10... \n", + "1 shap-select [V14, V12, V4, V7, Amount, Time] \n", + "2 shap-selection Index(['V4', 'V14', 'V12', 'V7', 'Amount', 'V1... \n", + "3 HISEL [V28, Time, Amount, V27, V26, V25, V24, V23, V... \n", + "4 Boruta [Time, V1, V4, V7, V8, V10, V12, V14, V16, V17... \n", + "5 RFE Index(['Time', 'V1', 'V3', 'V4', 'V7', 'V8', '... \n", + "\n", + " Accuracy F1 AUC-ROC AUC-PR Runtime (s) \n", + "0 0.999561 0.858757 0.979794 0.887021 0.000000 \n", + "1 0.999596 0.870056 0.979034 0.851562 32.621426 \n", + "2 0.999596 0.868571 0.977003 0.885695 17.677188 \n", + "3 0.999596 0.868571 0.982857 0.886771 396.376976 \n", + "4 0.999631 0.881356 0.975318 0.889164 303.695803 \n", + "5 0.999561 0.857143 0.971799 0.893268 40.403734 \n" + ] + }, + { + "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", + "
MethodSelected FeaturesAccuracyF1AUC-ROCAUC-PRRuntime (s)
0No selection[Time, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10...0.9995610.8587570.9797940.8870210.000000
1shap-select[V14, V12, V4, V7, Amount, Time]0.9995960.8700560.9790340.85156232.621426
2shap-selectionIndex(['V4', 'V14', 'V12', 'V7', 'Amount', 'V1...0.9995960.8685710.9770030.88569517.677188
3HISEL[V28, Time, Amount, V27, V26, V25, V24, V23, V...0.9995960.8685710.9828570.886771396.376976
4Boruta[Time, V1, V4, V7, V8, V10, V12, V14, V16, V17...0.9996310.8813560.9753180.889164303.695803
5RFEIndex(['Time', 'V1', 'V3', 'V4', 'V7', 'V8', '...0.9995610.8571430.9717990.89326840.403734
\n", + "
" + ], + "text/plain": [ + " Method Selected Features \\\n", + "0 No selection [Time, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10... \n", + "1 shap-select [V14, V12, V4, V7, Amount, Time] \n", + "2 shap-selection Index(['V4', 'V14', 'V12', 'V7', 'Amount', 'V1... \n", + "3 HISEL [V28, Time, Amount, V27, V26, V25, V24, V23, V... \n", + "4 Boruta [Time, V1, V4, V7, V8, V10, V12, V14, V16, V17... \n", + "5 RFE Index(['Time', 'V1', 'V3', 'V4', 'V7', 'V8', '... \n", + "\n", + " Accuracy F1 AUC-ROC AUC-PR Runtime (s) \n", + "0 0.999561 0.858757 0.979794 0.887021 0.000000 \n", + "1 0.999596 0.870056 0.979034 0.851562 32.621426 \n", + "2 0.999596 0.868571 0.977003 0.885695 17.677188 \n", + "3 0.999596 0.868571 0.982857 0.886771 396.376976 \n", + "4 0.999631 0.881356 0.975318 0.889164 303.695803 \n", + "5 0.999561 0.857143 0.971799 0.893268 40.403734 " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"Loading dataset...\")\n", + "df = pd.read_csv(\"creditcard.csv\")\n", + "X = df.drop(columns=[\"Class\"])\n", + "y = df[\"Class\"]\n", + "# Perform a 60-20-20 split for train, validation, and test sets\n", + "X_train_full, X_test, y_train_full, y_test = train_test_split(\n", + " X, y, test_size=0.2, random_state=RANDOM_SEED\n", + ")\n", + "X_train, X_val, y_train, y_val = train_test_split(\n", + " X_train_full, y_train_full, test_size=0.25, random_state=RANDOM_SEED\n", + ")\n", + "\n", + "results_df, trained_model = run_experiments(\n", + " X_train, X_val, X_test, y_train, y_val, y_test\n", + ")\n", + "results_df" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Shapley Select with p-value=0.01 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.01 completed in 36.22 seconds with 5 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount']\n", + "\n", + "--- Shapley Select with p-value=0.02 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.02 completed in 36.58 seconds with 5 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount']\n", + "\n", + "--- Shapley Select with p-value=0.03 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.03 completed in 36.68 seconds with 6 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time']\n", + "\n", + "--- Shapley Select with p-value=0.04 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.04 completed in 42.69 seconds with 6 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time']\n", + "\n", + "--- Shapley Select with p-value=0.05 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.05 completed in 43.62 seconds with 6 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time']\n", + "\n", + "--- Shapley Select with p-value=0.06 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.06 completed in 37.45 seconds with 6 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time']\n", + "\n", + "--- Shapley Select with p-value=0.07 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.07 completed in 36.80 seconds with 8 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time', 'V11', 'V16']\n", + "\n", + "--- Shapley Select with p-value=0.1 ---\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 31 out of 31 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 30 out of 30 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 29 out of 29 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 28 out of 28 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 27 out of 27 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 26 out of 26 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 25 out of 25 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 24 out of 24 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 23 out of 23 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 22 out of 22 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 21 out of 21 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 20 out of 20 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 19 out of 19 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 18 out of 18 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 17 out of 17 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 16 out of 16 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 15 out of 15 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 14 out of 14 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 13 out of 13 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 12 out of 12 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 11 out of 11 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 10 out of 10 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 9 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 8 out of 8 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 7 out of 7 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 6 out of 6 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 5 out of 5 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 4 out of 4 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 3 out of 3 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:71: ConvergenceWarning: QC check did not pass for 2 out of 2 parameters\n", + "Try increasing solver accuracy or number of iterations, decreasing alpha, or switch solvers\n", + " warnings.warn(message, ConvergenceWarning)\n", + "C:\\Users\\EgorKraev\\miniconda3\\envs\\shap-select3.10\\lib\\site-packages\\statsmodels\\base\\l1_solvers_common.py:144: ConvergenceWarning: Could not trim params automatically due to failed QC check. Trimming using trim_mode == 'size' will still work.\n", + " warnings.warn(msg, ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shapley Select with p-value 0.1 completed in 36.90 seconds with 10 selected features: ['V14', 'V12', 'V4', 'V7', 'Amount', 'Time', 'V11', 'V16', 'V5', 'V19']\n" + ] + } + ], + "source": [ + "shapley_select_results = []\n", + "p_results = []\n", + "# Shapely Select with different p-values\n", + "for p_value in [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.1]:\n", + " print(f\"\\n--- Shapley Select with p-value={p_value} ---\")\n", + " start_time = time.time()\n", + " shap_features, _ = shap_select(trained_model, X_val, y_val, task=\"binary\", alpha=1e-6, threshold=p_value, return_extended_data=True)\n", + " selected_features = shap_features[shap_features[\"selected\"] == 1][\"feature name\"].tolist()\n", + " runtime = time.time() - start_time\n", + " print(f\"Shapley Select with p-value {p_value} completed in {runtime:.2f} seconds with {len(selected_features)} selected features: {selected_features}\")\n", + "\n", + " this_model = train_xgboost(X_train[selected_features], y_train, X_val, y_val)\n", + " dtest = xgb.DMatrix(X_test[selected_features])\n", + " y_pred = this_model.predict(dtest)\n", + " y_pred_int = (y_pred > 0.5).astype(int)\n", + " \n", + " entry = {\n", + " \"p-value\": p_value,\n", + " \"Selected Features\": selected_features,\n", + " \"Num selected\": len(selected_features),\n", + " \"Accuracy\": accuracy_score(y_test, y_pred_int),\n", + " \"F1\": f1_score(y_test, y_pred_int),\n", + " \"AUC-ROC\": roc_auc_score(y_test, y_pred),\n", + " \"AUC-PR\": average_precision_score(y_test, y_pred),\n", + " \"Runtime (s)\": runtime,\n", + " }\n", + " p_results.append(entry)\n", + " shapley_select_results.append({'p_value': p_value, 'F1 Score': entry[\"F1\"]})\n", + " \n", + "scores= pd.DataFrame(p_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + "
p-valueSelected FeaturesNum selectedAccuracyF1AUC-ROCAUC-PRRuntime (s)
00.01[V14, V12, V4, V7, Amount]50.9995440.8555560.9800870.84324136.222788
10.02[V14, V12, V4, V7, Amount]50.9995440.8555560.9800870.84324136.581930
20.03[V14, V12, V4, V7, Amount, Time]60.9995960.8700560.9790340.85156236.681565
30.04[V14, V12, V4, V7, Amount, Time]60.9995960.8700560.9790340.85156242.689744
40.05[V14, V12, V4, V7, Amount, Time]60.9995960.8700560.9790340.85156243.615818
50.06[V14, V12, V4, V7, Amount, Time]60.9995960.8700560.9790340.85156237.448895
60.07[V14, V12, V4, V7, Amount, Time, V11, V16]80.9995260.8474580.9732900.86568336.796022
70.10[V14, V12, V4, V7, Amount, Time, V11, V16, V5,...100.9995260.8474580.9713670.85847236.903622
\n", + "
" + ], + "text/plain": [ + " p-value Selected Features Num selected \\\n", + "0 0.01 [V14, V12, V4, V7, Amount] 5 \n", + "1 0.02 [V14, V12, V4, V7, Amount] 5 \n", + "2 0.03 [V14, V12, V4, V7, Amount, Time] 6 \n", + "3 0.04 [V14, V12, V4, V7, Amount, Time] 6 \n", + "4 0.05 [V14, V12, V4, V7, Amount, Time] 6 \n", + "5 0.06 [V14, V12, V4, V7, Amount, Time] 6 \n", + "6 0.07 [V14, V12, V4, V7, Amount, Time, V11, V16] 8 \n", + "7 0.10 [V14, V12, V4, V7, Amount, Time, V11, V16, V5,... 10 \n", + "\n", + " Accuracy F1 AUC-ROC AUC-PR Runtime (s) \n", + "0 0.999544 0.855556 0.980087 0.843241 36.222788 \n", + "1 0.999544 0.855556 0.980087 0.843241 36.581930 \n", + "2 0.999596 0.870056 0.979034 0.851562 36.681565 \n", + "3 0.999596 0.870056 0.979034 0.851562 42.689744 \n", + "4 0.999596 0.870056 0.979034 0.851562 43.615818 \n", + "5 0.999596 0.870056 0.979034 0.851562 37.448895 \n", + "6 0.999526 0.847458 0.973290 0.865683 36.796022 \n", + "7 0.999526 0.847458 0.971367 0.858472 36.903622 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved plot for Shapley Select p-value benchmarking.\n" + ] + }, + { + "data": { + "image/png": "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hXbExgI1a2q7FUQlTwjg/n1l7mnfXrtteasCb0mZPn06/Pz8VI8TExPh5ORUYueLjc1fPUtLwNi4xJqhFSkpQEJC3vXKlwdMTdVHUN78t7SeK65jPX0KREbm3fdatQBr67zrvS0ePwZu3sy7ntT6Dehu3/Pb7xo1gAoVlP//+h9DC/q4tPbJzzHS04Hk5Lz7bmQE6PMnML3lMjKA1/5AnqP85p6S9FZ9udna2iI+Pl6tLD4+HhYWFjAxMYFcLodcLtdYx9bWNsfjGhkZwcjIqETarImdXf7q7d6t/d+IitvRo0CHDnnXCw7W3b6vXi2tvutqvwHd7Xt++/3jj9LqN5D/vh86JL2+k+7J7+c9v7mnJL1Vs8ZatGiBkJAQtbIjR46gRYsWAABDQ0O4u7ur1VEoFAgJCVHVKQvatAEcHf8b+XuTTKacw9qmTem2qzSw77rXd13tN6C7fdfVfgO63XfSPW/T512rgffly5eIiIhAREQEACAqKgoRERGIjo4GoJxq4O3trao/evRo3LlzB1OmTMH169exYsUKbNu2DZMnT1bV8fPzw48//ogNGzbg2rVr+OSTT5CUlARfX99S7Vtu5HIgMFD5/29+SLIeBwRof4J3SWDflf+vS33X1X4Dutt3Xe03oNt9J93zVn3eS26xiLyFhoYKANk2Hx8fIYQQPj4+ol27dtn2adSokTA0NBTVq1cX69aty3bcpUuXiipVqghDQ0PRrFkz8eeffxaoXdpch9fJSTeWrGHfda/vutpvIXS377rabyF0u++ke7T1eS9IXpMJoWkxCd2WmJgIS0tLJCQkwMLCokTPlZmpvHoxNlY5x6VNmzLym1ApYN91r++62m9Ad/uuq/0GdLvvpHu08XkvSF5j4NWgNAMvERERERVcQfLaW3XRGhERERFRQTHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx8BIRERGRpDHwEhEREZGkMfASERERkaQx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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# Plot F1 Score vs p-value for Shapley Select\n", + "plt.figure(figsize=(8, 6))\n", + "cols = [\"Accuracy\",\"F1\",\"AUC-ROC\",\"AUC-PR\"]\n", + "colors=[\"blue\", \"green\", \"cyan\", \"red\"]\n", + "for col, color in zip(cols, colors):\n", + " plt.scatter(scores[\"p-value\"], scores[col], color=color)\n", + " plt.plot(scores[\"p-value\"], scores[col], linestyle='-', color=color, label=col)\n", + "plt.xlabel(\"p-value Threshold\")\n", + "plt.ylabel(\"Scores\")\n", + "plt.legend()\n", + "plt.title(\"Shap-Select:p-value Threshold vs scores\")\n", + "plt.savefig(\"shapely_select_p_value_benchmarks.png\")\n", + "print(\"Saved plot for Shapley Select p-value benchmarking.\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:shap-select3.10]", + "language": "python", + "name": "conda-env-shap-select3.10-py" + }, + "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.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/shapely_select_paper_experiment.ipynb b/docs/shapely_select_paper_experiment.ipynb deleted file mode 100644 index 6325707..0000000 --- a/docs/shapely_select_paper_experiment.ipynb +++ /dev/null @@ -1,227 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from boruta import BorutaPy\n", - "from sklearn.feature_selection import RFE\n", - "from sklearn.metrics import accuracy_score, f1_score\n", - "from sklearn.model_selection import train_test_split\n", - "import xgboost as xgb\n", - "import time\n", - "from shap_select import shap_select\n", - "from skfeature.function.information_theoretical_based import MRMR\n", - "from shap_selection import feature_selection\n", - "\n", - "RANDOM_SEED = 42\n", - "np.random.seed(RANDOM_SEED)\n", - "\n", - "# Global XGBoost parameters for consistency\n", - "XGB_PARAMS = {\n", - " \"objective\": \"binary:logistic\",\n", - " \"eval_metric\": \"logloss\",\n", - " \"verbosity\": 0,\n", - " \"seed\": RANDOM_SEED,\n", - " \"nthread\": 1\n", - "}\n", - "\n", - "# Define common XGBoost model\n", - "def train_xgboost(X_train, y_train):\n", - " dtrain = xgb.DMatrix(X_train, label=y_train)\n", - " xgb_model = xgb.train(XGB_PARAMS, dtrain, num_boost_round=100)\n", - " return xgb_model\n", - "\n", - "def predict_xgboost(xgb_model, X_val):\n", - " dval = xgb.DMatrix(X_val)\n", - " y_pred = (xgb_model.predict(dval) > 0.5).astype(int)\n", - " return y_pred\n", - "\n", - "# HISEL feature selection using MRMR\n", - "def hisel_feature_selection(X_train, y_train, num_features):\n", - " selected_idx = MRMR.mrmr(X_train.values, y_train.values, n_selected_features=num_features)\n", - " return X_train.columns[selected_idx].tolist()\n", - "\n", - "# Run experiments with different feature selection methods and shap-select p-values\n", - "def run_experiments():\n", - " print(\"Loading dataset...\")\n", - " df = pd.read_csv('creditcard.csv')\n", - " X = df.drop(columns=['Class'])\n", - " y = df['Class']\n", - "\n", - " # Perform a 60-20-20 split for train, validation, and test sets\n", - " X_train_full, X_test, y_train_full, y_test = train_test_split(X, y, test_size=0.2, random_state=RANDOM_SEED)\n", - " X_train, X_val, y_train, y_val = train_test_split(X_train_full, y_train_full, test_size=0.25, random_state=RANDOM_SEED)\n", - "\n", - " results = []\n", - " shapely_select_results = []\n", - "\n", - " # No Feature Selection\n", - " print(\"\\n--- No Feature Selection ---\")\n", - " start_time = time.time()\n", - " xgb_model = train_xgboost(X_train, y_train)\n", - " y_pred = predict_xgboost(xgb_model, X_test)\n", - " runtime = time.time() - start_time\n", - " print(f\"No Feature Selection completed in {runtime:.2f} seconds with {len(X_train.columns)} features.\")\n", - " results.append({\n", - " 'Method': 'No Feature Selection',\n", - " 'Selected Features': len(X_train.columns),\n", - " 'Accuracy': accuracy_score(y_test, y_pred),\n", - " 'F1 Score': f1_score(y_test, y_pred),\n", - " 'Runtime (s)': runtime\n", - " })\n", - "\n", - " # Shapely Select with different p-values\n", - " for p_value in [0.01, 0.02, 0.03, 0.04, 0.05, 0.07, 0.1]:\n", - " print(f\"\\n--- Shapely Select with p-value={p_value} ---\")\n", - " start_time = time.time()\n", - " shap_features, _ = shap_select(xgb_model, X_val, y_val, task=\"binary\", alpha=1e-6, threshold=p_value, return_extended_data=True)\n", - " selected_features = shap_features[shap_features[\"selected\"] == 1][\"feature name\"].tolist()\n", - " runtime = time.time() - start_time\n", - " print(f\"Shapely Select with p-value {p_value} completed in {runtime:.2f} seconds with {len(selected_features)} selected features: {selected_features}\")\n", - "\n", - " xgb_model_shap = train_xgboost(X_train[selected_features], y_train)\n", - " y_pred_shap = predict_xgboost(xgb_model_shap, X_test[selected_features])\n", - "\n", - " f1_score_shap = f1_score(y_test, y_pred_shap)\n", - " shapely_select_results.append({'p_value': p_value, 'F1 Score': f1_score_shap})\n", - "\n", - " results.append({\n", - " 'Method': f'Shap-Select (p={int(p_value*100)}%)',\n", - " 'Selected Features': len(selected_features),\n", - " 'Accuracy': accuracy_score(y_test, y_pred_shap),\n", - " 'F1 Score': f1_score_shap,\n", - " 'Runtime (s)': runtime\n", - " })\n", - "\n", - " # Plot F1 Score vs p-value for Shapely Select\n", - " plt.figure(figsize=(8, 6))\n", - " p_values = [entry['p_value'] for entry in shapely_select_results]\n", - " f1_scores = [entry['F1 Score'] for entry in shapely_select_results]\n", - " plt.scatter(p_values, f1_scores, color='blue')\n", - " plt.plot(p_values, f1_scores, linestyle='-', color='blue')\n", - " plt.xlabel(\"p-value Threshold\")\n", - " plt.ylabel(\"F1 Score\")\n", - " plt.title(\"Shap-Select: F1 Score vs p-value Threshold\")\n", - " plt.savefig(\"shapely_select_p_value_benchmark.png\")\n", - " print(\"Saved plot for Shapely Select p-value benchmarking.\")\n", - "\n", - " # SHAP Selection\n", - " print(\"\\n--- SHAP Selection ---\")\n", - " start_time = time.time()\n", - " selected_shap_selection, _ = feature_selection.shap_select(xgb_model, X_train, X_val, X_train.columns, agnostic=False)\n", - " selected_shap_selection = selected_shap_selection[:15]\n", - " shap_selection_time = time.time() - start_time\n", - " print(f\"SHAP Selection completed in {shap_selection_time:.2f} seconds with {len(selected_shap_selection)} selected features: {selected_shap_selection}\")\n", - "\n", - " xgb_model_shap_selection = train_xgboost(X_train[selected_shap_selection], y_train)\n", - " y_pred_shap_selection = predict_xgboost(xgb_model_shap_selection, X_test[selected_shap_selection])\n", - "\n", - " results.append({\n", - " 'Method': 'SHAP Selection',\n", - " 'Selected Features': len(selected_shap_selection),\n", - " 'Accuracy': accuracy_score(y_test, y_pred_shap_selection),\n", - " 'F1 Score': f1_score(y_test, y_pred_shap_selection),\n", - " 'Runtime (s)': shap_selection_time\n", - " })\n", - "\n", - " # RFE\n", - " print(\"\\n--- RFE ---\")\n", - " rfe_start_time = time.time()\n", - " rfe = RFE(xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False), n_features_to_select=15)\n", - " rfe.fit(X_train, y_train)\n", - " selected_rfe = X_train.columns[rfe.support_]\n", - " rfe_time = time.time() - rfe_start_time\n", - " print(f\"RFE completed in {rfe_time:.2f} seconds with {len(selected_rfe)} selected features: {selected_rfe}\")\n", - "\n", - " xgb_model_rfe = train_xgboost(X_train[selected_rfe], y_train)\n", - " y_pred_rfe = predict_xgboost(xgb_model_rfe, X_test[selected_rfe])\n", - "\n", - " results.append({\n", - " 'Method': 'RFE',\n", - " 'Selected Features': len(selected_rfe),\n", - " 'Accuracy': accuracy_score(y_test, y_pred_rfe),\n", - " 'F1 Score': f1_score(y_test, y_pred_rfe),\n", - " 'Runtime (s)': rfe_time\n", - " })\n", - "\n", - " # HISEL\n", - " print(\"\\n--- HISEL ---\")\n", - " hisel_start_time = time.time()\n", - " selected_hisel = hisel_feature_selection(X_train, y_train, num_features=15)\n", - " hisel_time = time.time() - hisel_start_time\n", - " print(f\"HISEL completed in {hisel_time:.2f} seconds with {len(selected_hisel)} selected features: {selected_hisel}\")\n", - "\n", - " xgb_model_hisel = train_xgboost(X_train[selected_hisel], y_train)\n", - " y_pred_hisel = predict_xgboost(xgb_model_hisel, X_test[selected_hisel])\n", - "\n", - " results.append({\n", - " 'Method': 'HISEL',\n", - " 'Selected Features': len(selected_hisel),\n", - " 'Accuracy': accuracy_score(y_test, y_pred_hisel),\n", - " 'F1 Score': f1_score(y_test, y_pred_hisel),\n", - " 'Runtime (s)': hisel_time\n", - " })\n", - "\n", - " # Boruta\n", - " print(\"\\n--- Boruta ---\")\n", - " boruta_start_time = time.time()\n", - " rf_model = xgb.XGBClassifier(**XGB_PARAMS, use_label_encoder=False)\n", - " boruta_selector = BorutaPy(rf_model, n_estimators=100, random_state=RANDOM_SEED)\n", - " boruta_selector.fit(X_train.values, y_train.values)\n", - " selected_boruta = X_train.columns[boruta_selector.support_].tolist()\n", - " boruta_time = time.time() - boruta_start_time\n", - " print(f\"Boruta completed in {boruta_time:.2f} seconds with {len(selected_boruta)} selected features: {selected_boruta}\")\n", - "\n", - " xgb_model_boruta = train_xgboost(X_train[selected_boruta], y_train)\n", - " y_pred_boruta = predict_xgboost(xgb_model_boruta, X_test[selected_boruta])\n", - "\n", - " results.append({\n", - " 'Method': 'Boruta',\n", - " 'Selected Features': len(selected_boruta),\n", - " 'Accuracy': accuracy_score(y_test, y_pred_boruta),\n", - " 'F1 Score': f1_score(y_test, y_pred_boruta),\n", - " 'Runtime (s)': boruta_time\n", - " })\n", - "\n", - " assert set(X_train.columns) == set(selected_hisel), \"Feature sets differ!\"\n", - "\n", - "\n", - "\n", - " results_df = pd.DataFrame(results)\n", - " print(\"\\n--- Experiment Results ---\")\n", - " print(results_df)\n", - " return results_df\n", - "\n", - " \n", - "run_experiments()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.7" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}