|
@@ -4,6 +4,7 @@
|
|
|
@time: 2024/1/2
|
|
|
@desc: iv值及单调性筛选类
|
|
|
"""
|
|
|
+import time
|
|
|
from itertools import combinations_with_replacement
|
|
|
from typing import List, Dict
|
|
|
|
|
@@ -15,6 +16,7 @@ import seaborn as sns
|
|
|
from pandas.core.dtypes.common import is_numeric_dtype
|
|
|
from tqdm import tqdm
|
|
|
|
|
|
+from commom import f_display_images_by_side
|
|
|
from entitys import DataSplitEntity, CandidateFeatureEntity, DataPreparedEntity, DataFeatureEntity, MetricFucEntity
|
|
|
from .feature_utils import f_judge_monto, f_get_corr, f_get_ivf, f_format_bin
|
|
|
from .filter_strategy_base import FilterStrategyBase
|
|
@@ -350,8 +352,8 @@ class StrategyIv(FilterStrategyBase):
|
|
|
return DataPreparedEntity(train_data_feature, val_data_feature, test_data_feature, bins=bins,
|
|
|
data_split_original=data)
|
|
|
|
|
|
- def feature_report(self, data: DataSplitEntity, candidate_dict: Dict[str, CandidateFeatureEntity], *args,
|
|
|
- **kwargs) -> Dict[str, MetricFucEntity]:
|
|
|
+ def feature_report(self, data: DataSplitEntity, candidate_dict: Dict[str, CandidateFeatureEntity], jupyter=False,
|
|
|
+ *args, **kwargs) -> Dict[str, MetricFucEntity]:
|
|
|
y_column = self.data_process_config.y_column
|
|
|
x_columns_candidate = list(candidate_dict.keys())
|
|
|
train_data = data.train_data
|
|
@@ -390,4 +392,15 @@ class StrategyIv(FilterStrategyBase):
|
|
|
vif_df = f_get_ivf(train_woe)
|
|
|
metric_value_dict["变量有效性"] = MetricFucEntity(image_path=var_corr_image_path, table=vif_df)
|
|
|
|
|
|
+ time.sleep(3)
|
|
|
+ if jupyter:
|
|
|
+ from IPython import display
|
|
|
+ display.display(metric_value_dict["样本分布"].table)
|
|
|
+ display.display(metric_value_dict["变量iv"].table)
|
|
|
+ f_display_images_by_side(metric_value_dict["变量有效性"].image_path, display, width=800)
|
|
|
+ f_display_images_by_side(metric_value_dict["变量趋势-训练集"].image_path, display, title="变量趋势训练集")
|
|
|
+ metric_test = metric_value_dict.get("变量趋势-测试集")
|
|
|
+ if metric_test is not None:
|
|
|
+ f_display_images_by_side(metric_test.image_path, display, title="变量趋势测试集")
|
|
|
+
|
|
|
return metric_value_dict
|