SuperModelingFactory 0.7.2__tar.gz → 0.8.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Parallel_Engine.py +6 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Feature_Screen.py +4 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/credit_model.py +21 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/feature_validation.py +26 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Master.py +24 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Master.pyi +2 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +371 -29
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +4 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Tool.py +208 -4
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Tool.pyi +7 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/__init__.py +1 -1
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/PKG-INFO +2 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/README.md +1 -1
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/PKG-INFO +2 -2
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/pyproject.toml +1 -1
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/setup.py +1 -1
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/ExcelMaster/ExcelFormatTool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/ExcelMaster/ExcelMaster.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/ExcelMaster/Template.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/ExcelMaster/Utility.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/ExcelMaster/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/LICENSE +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/MANIFEST.in +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Binning_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Binning_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Json_Data_Converter.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Model_Registry_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/ODPS_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Proc_Compare.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Slope_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Slope_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/XOR_Encryptor.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/kDataFrame.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/kDataFrame.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/sample_weight_utils.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/utils.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/Evaluation_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/Model_Eval_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/evaluate_model.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/evaluate_model.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Eval/weighted_eval_utils.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Explainability/Coalition_Structure.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Explainability/Model_Explainer.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Explainability/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Distribution_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Distribution_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Feature_Insights.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Feature_Insights.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/PSI_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/PSI_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Screen_Gates.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Weighted_Screen.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/Backward_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/Backward_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/GBM_Search_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/GBM_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/GBM_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/LRM_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/LRM_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Model/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/_common.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/field_meta.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/mock_sample.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/orchestrator.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/reject_inference.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/sample_analysis.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/score_comparison.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/score_consistency_uat.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/screening_artifact.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Reject_Infer.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Reject_Infer.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Sample_Split.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/Sample_Split.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Sample/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/UAT/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Adapter.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Report_Builder.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/plot_woe_tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/_utils/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/_utils/nan_guard.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/_utils/robust.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/_utils/sentinels.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/ref_font/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/ref_font/simsun.ttc +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Report/Report_Tool.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Report/__init__.py +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/SOURCES.txt +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/requires.txt +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/SuperModelingFactory.egg-info/top_level.txt +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/requirements.txt +0 -0
- {supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/setup.cfg +0 -0
{supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Core/Parallel_Engine.py
RENAMED
|
@@ -189,9 +189,15 @@ class ParallelApplyEngine:
|
|
|
189
189
|
func_args: tuple[Any, ...],
|
|
190
190
|
func_kwargs: dict[str, Any],
|
|
191
191
|
) -> None:
|
|
192
|
+
# joblib < 1.6 vendors cloudpickle; joblib >= 1.6 dropped the copy and depends on
|
|
193
|
+
# the cloudpickle package. Resolve the serializer outside the check below so an
|
|
194
|
+
# import problem is never reported as a non-serializable callable.
|
|
192
195
|
try:
|
|
193
196
|
from joblib.externals import cloudpickle
|
|
197
|
+
except ImportError:
|
|
198
|
+
import cloudpickle
|
|
194
199
|
|
|
200
|
+
try:
|
|
195
201
|
cloudpickle.dumps((func, func_args, func_kwargs))
|
|
196
202
|
except Exception as exc:
|
|
197
203
|
raise TypeError(
|
{supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Feature/Feature_Screen.py
RENAMED
|
@@ -51,6 +51,10 @@ _MONOTONE_INIT_KEYS = frozenset({
|
|
|
51
51
|
"direction_conflict_policy",
|
|
52
52
|
"missing_bin_strategy",
|
|
53
53
|
"refine_min_n_bins_policy",
|
|
54
|
+
"sv_min_bin_size",
|
|
55
|
+
"sv_small_policy",
|
|
56
|
+
"sv_woe_smoothing",
|
|
57
|
+
"sv_smoothing_alpha",
|
|
54
58
|
})
|
|
55
59
|
_MONOTONE_FIT_KEYS = frozenset({"chi2_binning", "chi2_p", "chi2_init_size", "n_jobs"})
|
|
56
60
|
|
{supermodelingfactory-0.7.2 → supermodelingfactory-0.8.1}/Modeling_Tool/Pipeline/credit_model.py
RENAMED
|
@@ -62,11 +62,30 @@ class CreditModelPipelineConfig:
|
|
|
62
62
|
woe_engine: str = "equal_freq"
|
|
63
63
|
woe_fit_query: str | None = None
|
|
64
64
|
extra_eval_datasets: dict[str, pd.DataFrame] | None = None
|
|
65
|
+
# sv_* govern special-value (SV) WOE bins only; the defaults below reproduce
|
|
66
|
+
# pre-0.8.0 behavior bit-for-bit. They reach WOE_Master via fit(**woe_params)
|
|
67
|
+
# and MonotoneWOEBinner via __init__(**monotone_woe_params).
|
|
65
68
|
woe_params: dict[str, Any] = field(
|
|
66
|
-
default_factory=lambda: {
|
|
69
|
+
default_factory=lambda: {
|
|
70
|
+
"nbins": 10,
|
|
71
|
+
"equal_freq": True,
|
|
72
|
+
"min_bin_prop": 0.05,
|
|
73
|
+
"sv_min_bin_size": 0.0,
|
|
74
|
+
"sv_small_policy": "keep",
|
|
75
|
+
"sv_woe_smoothing": "none",
|
|
76
|
+
"sv_smoothing_alpha": 0.0,
|
|
77
|
+
}
|
|
67
78
|
)
|
|
68
79
|
monotone_woe_params: dict[str, Any] = field(
|
|
69
|
-
default_factory=lambda: {
|
|
80
|
+
default_factory=lambda: {
|
|
81
|
+
"n_init_bins": 20,
|
|
82
|
+
"min_bin_size": 0.03,
|
|
83
|
+
"min_n_bins": 2,
|
|
84
|
+
"sv_min_bin_size": 0.0,
|
|
85
|
+
"sv_small_policy": "keep",
|
|
86
|
+
"sv_woe_smoothing": "none",
|
|
87
|
+
"sv_smoothing_alpha": 0.0,
|
|
88
|
+
}
|
|
70
89
|
)
|
|
71
90
|
|
|
72
91
|
train_models: list[str] = field(default_factory=lambda: ["lr", "lgb", "xgb", "cat"])
|
|
@@ -66,11 +66,31 @@ class FeatureValidationPipelineConfig:
|
|
|
66
66
|
woe_enabled: bool = True
|
|
67
67
|
woe_fit_query: str | None = None
|
|
68
68
|
woe_engine: str = "monotone"
|
|
69
|
+
# sv_* govern special-value (SV) WOE bins only; the defaults below reproduce
|
|
70
|
+
# pre-0.8.0 behavior bit-for-bit. Monotone-side sv_* keys only survive because
|
|
71
|
+
# they are listed in _MONOTONE_INIT_KEYS below — unlisted keys are dropped
|
|
72
|
+
# silently, so the two lists must be kept in sync.
|
|
69
73
|
woe_params: dict[str, Any] = field(
|
|
70
|
-
default_factory=lambda: {
|
|
74
|
+
default_factory=lambda: {
|
|
75
|
+
"nbins": 10,
|
|
76
|
+
"equal_freq": True,
|
|
77
|
+
"min_bin_prop": 0.05,
|
|
78
|
+
"sv_min_bin_size": 0.0,
|
|
79
|
+
"sv_small_policy": "keep",
|
|
80
|
+
"sv_woe_smoothing": "none",
|
|
81
|
+
"sv_smoothing_alpha": 0.0,
|
|
82
|
+
}
|
|
71
83
|
)
|
|
72
84
|
monotone_woe_params: dict[str, Any] = field(
|
|
73
|
-
default_factory=lambda: {
|
|
85
|
+
default_factory=lambda: {
|
|
86
|
+
"n_init_bins": 20,
|
|
87
|
+
"min_bin_size": 0.03,
|
|
88
|
+
"min_n_bins": 2,
|
|
89
|
+
"sv_min_bin_size": 0.0,
|
|
90
|
+
"sv_small_policy": "keep",
|
|
91
|
+
"sv_woe_smoothing": "none",
|
|
92
|
+
"sv_smoothing_alpha": 0.0,
|
|
93
|
+
}
|
|
74
94
|
)
|
|
75
95
|
categorical_features: list[str] | None = None
|
|
76
96
|
monotone_refine_cate_enabled: bool = False
|
|
@@ -170,6 +190,10 @@ class FeatureValidationPipeline:
|
|
|
170
190
|
"direction_conflict_policy",
|
|
171
191
|
"missing_bin_strategy",
|
|
172
192
|
"refine_min_n_bins_policy",
|
|
193
|
+
"sv_min_bin_size",
|
|
194
|
+
"sv_small_policy",
|
|
195
|
+
"sv_woe_smoothing",
|
|
196
|
+
"sv_smoothing_alpha",
|
|
173
197
|
}
|
|
174
198
|
_MONOTONE_FIT_KEYS = {"chi2_binning", "chi2_p", "chi2_init_size", "n_jobs"}
|
|
175
199
|
|
|
@@ -289,7 +289,9 @@ class WOE_Master(object):
|
|
|
289
289
|
self.varlist = varlist
|
|
290
290
|
|
|
291
291
|
def fit(self, nbins=10, equal_freq=True, tree_binning_seed=None, chi2_config=None,
|
|
292
|
-
precision=5, min_bin_prop=0.05, include_missing=True, fillna=None, spec_values=[]
|
|
292
|
+
precision=5, min_bin_prop=0.05, include_missing=True, fillna=None, spec_values=[],
|
|
293
|
+
sv_min_bin_size=0.0, sv_small_policy="keep",
|
|
294
|
+
sv_woe_smoothing="none", sv_smoothing_alpha=0.0):
|
|
293
295
|
"""Fit WOE binning for variables in varlist.
|
|
294
296
|
|
|
295
297
|
Args:
|
|
@@ -302,6 +304,11 @@ class WOE_Master(object):
|
|
|
302
304
|
include_missing: bool, include missing value bin (default True)
|
|
303
305
|
fillna: int/float, value to fill missing data
|
|
304
306
|
spec_values: list, special values to handle
|
|
307
|
+
sv_min_bin_size: float, low-frequency special-value bin threshold as a
|
|
308
|
+
share of all samples; 0.0 disables the fallback (legacy behaviour)
|
|
309
|
+
sv_small_policy: str, 'keep' (default) / 'neutral' / 'merge_missing'
|
|
310
|
+
sv_woe_smoothing: str, 'none' (default) / 'laplace'
|
|
311
|
+
sv_smoothing_alpha: float, Laplace smoothing strength alpha (pseudo-counts)
|
|
305
312
|
Returns:
|
|
306
313
|
None, updates self.woe_dict attribute
|
|
307
314
|
"""
|
|
@@ -323,6 +330,10 @@ class WOE_Master(object):
|
|
|
323
330
|
ascending=True,
|
|
324
331
|
fillna=fillna,
|
|
325
332
|
spec_values=spec_values,
|
|
333
|
+
sv_min_bin_size=sv_min_bin_size,
|
|
334
|
+
sv_small_policy=sv_small_policy,
|
|
335
|
+
sv_woe_smoothing=sv_woe_smoothing,
|
|
336
|
+
sv_smoothing_alpha=sv_smoothing_alpha,
|
|
326
337
|
drop_bin_info=True,
|
|
327
338
|
ret_woe_table=True)
|
|
328
339
|
woe_table = woe_res[-1]
|
|
@@ -381,7 +392,9 @@ class WOE_Master(object):
|
|
|
381
392
|
return data_woe
|
|
382
393
|
|
|
383
394
|
def update_woe(self, varlist, nbins=10, equal_freq=True, tree_binning_seed=None, chi2_config=None,
|
|
384
|
-
precision=5, min_bin_prop=0.05, include_missing=True, fillna=None, spec_values=[]
|
|
395
|
+
precision=5, min_bin_prop=0.05, include_missing=True, fillna=None, spec_values=[],
|
|
396
|
+
sv_min_bin_size=0.0, sv_small_policy="keep",
|
|
397
|
+
sv_woe_smoothing="none", sv_smoothing_alpha=0.0):
|
|
385
398
|
"""Update WOE binning for specified variables.
|
|
386
399
|
|
|
387
400
|
Args:
|
|
@@ -395,6 +408,11 @@ class WOE_Master(object):
|
|
|
395
408
|
include_missing: bool, include missing value bin (default True)
|
|
396
409
|
fillna: int/float, value to fill missing data
|
|
397
410
|
spec_values: list, special values to handle
|
|
411
|
+
sv_min_bin_size: float, low-frequency special-value bin threshold as a
|
|
412
|
+
share of all samples; 0.0 disables the fallback (legacy behaviour)
|
|
413
|
+
sv_small_policy: str, 'keep' (default) / 'neutral' / 'merge_missing'
|
|
414
|
+
sv_woe_smoothing: str, 'none' (default) / 'laplace'
|
|
415
|
+
sv_smoothing_alpha: float, Laplace smoothing strength alpha (pseudo-counts)
|
|
398
416
|
Returns:
|
|
399
417
|
None, updates self.woe_dict attribute
|
|
400
418
|
"""
|
|
@@ -417,6 +435,10 @@ class WOE_Master(object):
|
|
|
417
435
|
ascending=True,
|
|
418
436
|
fillna=fillna,
|
|
419
437
|
spec_values=spec_values,
|
|
438
|
+
sv_min_bin_size=sv_min_bin_size,
|
|
439
|
+
sv_small_policy=sv_small_policy,
|
|
440
|
+
sv_woe_smoothing=sv_woe_smoothing,
|
|
441
|
+
sv_smoothing_alpha=sv_smoothing_alpha,
|
|
420
442
|
drop_bin_info=True,
|
|
421
443
|
ret_woe_table=True)
|
|
422
444
|
woe_table = woe_res[-1]
|
|
@@ -27,11 +27,11 @@ class WOE_Master(object):
|
|
|
27
27
|
def __init__(self, train_data, varlist, dep = None, graph_save_dir = '', woe_suffix = '_woe', missing_ref_value = ..., remove_exist_dir = False): ...
|
|
28
28
|
def remove_folder(file_path): ...
|
|
29
29
|
def load_mapping_table(self, mapping_table_csv): ...
|
|
30
|
-
def fit(self, nbins = 10, equal_freq = True, tree_binning_seed = None, chi2_config = None, precision = 5, min_bin_prop = 0.05, include_missing = True, fillna = None, spec_values = []): ...
|
|
30
|
+
def fit(self, nbins = 10, equal_freq = True, tree_binning_seed = None, chi2_config = None, precision = 5, min_bin_prop = 0.05, include_missing = True, fillna = None, spec_values = [], sv_min_bin_size = 0.0, sv_small_policy = 'keep', sv_woe_smoothing = 'none', sv_smoothing_alpha = 0.0): ...
|
|
31
31
|
def get_mapping_table(self): ...
|
|
32
32
|
def save_mapping_table(self, save_dir): ...
|
|
33
33
|
def transform(self, data = None, varlist = None): ...
|
|
34
|
-
def update_woe(self, varlist, nbins = 10, equal_freq = True, tree_binning_seed = None, chi2_config = None, precision = 5, min_bin_prop = 0.05, include_missing = True, fillna = None, spec_values = []): ...
|
|
34
|
+
def update_woe(self, varlist, nbins = 10, equal_freq = True, tree_binning_seed = None, chi2_config = None, precision = 5, min_bin_prop = 0.05, include_missing = True, fillna = None, spec_values = [], sv_min_bin_size = 0.0, sv_small_policy = 'keep', sv_woe_smoothing = 'none', sv_smoothing_alpha = 0.0): ...
|
|
35
35
|
def plot_bivar_graph(self, data, group = None, dirname = None, varlist = None): ...
|
|
36
36
|
def load_mapping_table(mapping_table_csv): ...
|
|
37
37
|
def get_mapping_table(woe_dict): ...
|