SuperModelingFactory 0.7.0__tar.gz → 0.7.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.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Insights.py +27 -3
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +70 -3
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/__init__.py +1 -1
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/PKG-INFO +2 -2
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/README.md +1 -1
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/PKG-INFO +2 -2
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/pyproject.toml +1 -1
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/setup.py +1 -1
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/ExcelMaster/ExcelFormatTool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/ExcelMaster/ExcelMaster.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/ExcelMaster/Template.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/ExcelMaster/Utility.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/ExcelMaster/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/LICENSE +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/MANIFEST.in +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Binning_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Binning_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Json_Data_Converter.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Model_Registry_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/ODPS_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Parallel_Engine.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Proc_Compare.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Slope_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Slope_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/XOR_Encryptor.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/kDataFrame.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/kDataFrame.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/sample_weight_utils.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/utils.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Evaluation_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Model_Eval_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/evaluate_model.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/evaluate_model.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/weighted_eval_utils.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Explainability/Coalition_Structure.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Explainability/Model_Explainer.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Explainability/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Distribution_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Distribution_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Insights.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Screen.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/PSI_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/PSI_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Screen_Gates.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Weighted_Screen.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/Backward_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/Backward_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/GBM_Search_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/GBM_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/GBM_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/LRM_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/LRM_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/_common.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/credit_model.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/feature_validation.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/field_meta.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/mock_sample.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/orchestrator.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/reject_inference.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/sample_analysis.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/score_comparison.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/score_consistency_uat.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/screening_artifact.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Reject_Infer.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Reject_Infer.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Sample_Split.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Sample_Split.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/UAT/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Adapter.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Master.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Master.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Report_Builder.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/plot_woe_tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/_utils/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/_utils/nan_guard.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/_utils/robust.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/_utils/sentinels.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/simsun.ttc +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Report/Report_Tool.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Report/__init__.py +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/SOURCES.txt +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/requires.txt +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/top_level.txt +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/requirements.txt +0 -0
- {supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/setup.cfg +0 -0
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Insights.py
RENAMED
|
@@ -417,14 +417,38 @@ class CorrelationFilter:
|
|
|
417
417
|
self.correlated_dict = {}
|
|
418
418
|
self.filtered_varlist = []
|
|
419
419
|
self._corr_matrix_cache = None
|
|
420
|
+
self._corr_matrix_excluded = set()
|
|
420
421
|
self._metric_summary_cache = None
|
|
421
422
|
|
|
423
|
+
def _corr_matrix_frame(self, varlist):
|
|
424
|
+
# 0.7.0-R1: numeric-subset correlation base. A pure-numeric varlist is
|
|
425
|
+
# byte-identical to the legacy self.data[varlist].corr() path. Non-numeric
|
|
426
|
+
# cols (raw Pearson is undefined) are excluded and tracked in
|
|
427
|
+
# self._corr_matrix_excluded; _high_corr_pairs reindexes them back as NaN
|
|
428
|
+
# rows/cols so they survive the corr stage instead of crashing the float
|
|
429
|
+
# cast. At most one raw-value UserWarning per matrix build (no WOE binner).
|
|
430
|
+
non_numeric = [c for c in varlist if not pd.api.types.is_numeric_dtype(self.data[c])]
|
|
431
|
+
if not non_numeric:
|
|
432
|
+
self._corr_matrix_excluded = set()
|
|
433
|
+
return self.data[varlist]
|
|
434
|
+
self._corr_matrix_excluded = set(non_numeric)
|
|
435
|
+
warnings.warn(
|
|
436
|
+
f"raw-value correlation skips {len(non_numeric)} non-numeric "
|
|
437
|
+
f"feature(s) {non_numeric[:5]}; they are kept through the corr "
|
|
438
|
+
f"stage. Set corr_use_woe_bins=True to correlate categorical "
|
|
439
|
+
f"features via their WOE encoding.",
|
|
440
|
+
UserWarning,
|
|
441
|
+
stacklevel=2,
|
|
442
|
+
)
|
|
443
|
+
selected = [c for c in varlist if c not in self._corr_matrix_excluded]
|
|
444
|
+
return self.data[selected]
|
|
445
|
+
|
|
422
446
|
def _high_corr_pairs(self, varlist):
|
|
423
447
|
if (
|
|
424
448
|
self._corr_matrix_cache is None
|
|
425
|
-
or not set(varlist)
|
|
449
|
+
or not (set(varlist) <= set(self._corr_matrix_cache.columns) | self._corr_matrix_excluded)
|
|
426
450
|
):
|
|
427
|
-
self._corr_matrix_cache = self.
|
|
451
|
+
self._corr_matrix_cache = self._corr_matrix_frame(varlist).corr(method=self.method)
|
|
428
452
|
matrix = self._corr_matrix_cache.reindex(index=varlist, columns=varlist)
|
|
429
453
|
values = matrix.to_numpy(dtype=float)
|
|
430
454
|
row_idx, col_idx = np.triu_indices(len(varlist), k=1)
|
|
@@ -561,7 +585,7 @@ class CorrelationFilter:
|
|
|
561
585
|
>>> filter_analyzer = CorrelationFilter(df, 'target')
|
|
562
586
|
>>> keep_vars = filter_analyzer.remove_highly_correlated(['var1', 'var2', 'var3'])
|
|
563
587
|
"""
|
|
564
|
-
self._corr_matrix_cache = self.
|
|
588
|
+
self._corr_matrix_cache = self._corr_matrix_frame(varlist).corr(method=self.method)
|
|
565
589
|
self._metric_summary_cache = None
|
|
566
590
|
self._metric_summary(varlist)
|
|
567
591
|
last_keep_list = self.filter_single_iteration(varlist)
|
|
@@ -467,14 +467,81 @@ class CorrelationFilter:
|
|
|
467
467
|
self.correlated_dict = {}
|
|
468
468
|
self.filtered_varlist = []
|
|
469
469
|
self._corr_matrix_cache = None
|
|
470
|
+
self._corr_matrix_excluded = set()
|
|
470
471
|
self._metric_summary_cache = None
|
|
471
472
|
|
|
473
|
+
def _corr_matrix_frame(self, varlist):
|
|
474
|
+
# 0.7.0-R1: mixed correlation base. Numeric cols stay raw so a
|
|
475
|
+
# pure-numeric varlist is byte-identical to the legacy .corr() path;
|
|
476
|
+
# non-numeric cols are WOE-encoded via the screening binner
|
|
477
|
+
# (corr_use_woe_bins semantics) and renamed back to raw names. Cols that
|
|
478
|
+
# cannot be encoded go to self._corr_matrix_excluded: they leave the
|
|
479
|
+
# matrix and survive the corr stage as NaN rows/cols once _high_corr_pairs
|
|
480
|
+
# reindexes them back in (same as the weighted raw precedent). At most one
|
|
481
|
+
# UserWarning per matrix build.
|
|
482
|
+
non_numeric = [c for c in varlist if not pd.api.types.is_numeric_dtype(self.data[c])]
|
|
483
|
+
if not non_numeric:
|
|
484
|
+
self._corr_matrix_excluded = set()
|
|
485
|
+
return self.data[varlist]
|
|
486
|
+
|
|
487
|
+
encoded = {}
|
|
488
|
+
excluded = set()
|
|
489
|
+
if self.woe_binner is not None:
|
|
490
|
+
suffix = str(getattr(self.woe_binner, "woe_suffix", "_woe"))
|
|
491
|
+
try:
|
|
492
|
+
adapter = as_woe_engine(self.woe_binner, woe_suffix=suffix)
|
|
493
|
+
except TypeError as exc:
|
|
494
|
+
raise TypeError(
|
|
495
|
+
"corr_use_woe_bins=True routed categorical feature(s) through "
|
|
496
|
+
"the screening WOE engine at the corr stage, but the supplied "
|
|
497
|
+
"woe_binner is an Unsupported WOE engine. Expected WOE_Master, "
|
|
498
|
+
"MonotoneWOEBinner, or WOEEngineAdapter."
|
|
499
|
+
) from exc
|
|
500
|
+
suffix = adapter.woe_suffix
|
|
501
|
+
try:
|
|
502
|
+
tx = adapter.transform(self.data.copy(), varlist=non_numeric, suffix=suffix)
|
|
503
|
+
except (TypeError, ValueError, KeyError, AttributeError, np.linalg.LinAlgError):
|
|
504
|
+
tx = None
|
|
505
|
+
for name in non_numeric:
|
|
506
|
+
column = f"{name}{suffix}"
|
|
507
|
+
if tx is not None and column in tx.columns and pd.api.types.is_numeric_dtype(tx[column]):
|
|
508
|
+
encoded[name] = tx[column].to_numpy()
|
|
509
|
+
else:
|
|
510
|
+
excluded.add(name)
|
|
511
|
+
if excluded:
|
|
512
|
+
excluded_list = [c for c in non_numeric if c in excluded]
|
|
513
|
+
warnings.warn(
|
|
514
|
+
f"corr_use_woe_bins=True could not WOE-encode {len(excluded)} "
|
|
515
|
+
f"feature(s) {excluded_list[:5]}; they are excluded from the "
|
|
516
|
+
f"correlation matrix and kept through the corr stage. Refit the "
|
|
517
|
+
f"screening WOE engine to cover them.",
|
|
518
|
+
UserWarning,
|
|
519
|
+
stacklevel=2,
|
|
520
|
+
)
|
|
521
|
+
else:
|
|
522
|
+
excluded = set(non_numeric)
|
|
523
|
+
warnings.warn(
|
|
524
|
+
f"raw-value correlation skips {len(non_numeric)} non-numeric "
|
|
525
|
+
f"feature(s) {non_numeric[:5]}; they are kept through the corr "
|
|
526
|
+
f"stage. Set corr_use_woe_bins=True to correlate categorical "
|
|
527
|
+
f"features via their WOE encoding.",
|
|
528
|
+
UserWarning,
|
|
529
|
+
stacklevel=2,
|
|
530
|
+
)
|
|
531
|
+
|
|
532
|
+
self._corr_matrix_excluded = excluded
|
|
533
|
+
selected = [c for c in varlist if c not in excluded]
|
|
534
|
+
frame = self.data[selected].copy()
|
|
535
|
+
for name, values in encoded.items():
|
|
536
|
+
frame[name] = values
|
|
537
|
+
return frame
|
|
538
|
+
|
|
472
539
|
def _high_corr_pairs(self, varlist):
|
|
473
540
|
if (
|
|
474
541
|
self._corr_matrix_cache is None
|
|
475
|
-
or not set(varlist)
|
|
542
|
+
or not (set(varlist) <= set(self._corr_matrix_cache.columns) | self._corr_matrix_excluded)
|
|
476
543
|
):
|
|
477
|
-
self._corr_matrix_cache = self.
|
|
544
|
+
self._corr_matrix_cache = self._corr_matrix_frame(varlist).corr(method=self.method)
|
|
478
545
|
matrix = self._corr_matrix_cache.reindex(index=varlist, columns=varlist)
|
|
479
546
|
values = matrix.to_numpy(dtype=float)
|
|
480
547
|
row_idx, col_idx = np.triu_indices(len(varlist), k=1)
|
|
@@ -562,7 +629,7 @@ class CorrelationFilter:
|
|
|
562
629
|
self.filtered_varlist = getattr(self._base, "filtered_varlist", [])
|
|
563
630
|
return result
|
|
564
631
|
|
|
565
|
-
self._corr_matrix_cache = self.
|
|
632
|
+
self._corr_matrix_cache = self._corr_matrix_frame(varlist).corr(method=self.method)
|
|
566
633
|
self._metric_summary_cache = None
|
|
567
634
|
self._metric_summary(varlist)
|
|
568
635
|
last_keep_list = self.filter_single_iteration(varlist)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SuperModelingFactory
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.
|
|
5
5
|
Home-page: https://github.com/Kyle-J-Sun/SuperModelingFactory
|
|
6
6
|
Author: Kyle Sun
|
|
@@ -265,7 +265,7 @@ em.close_workbook()
|
|
|
265
265
|
|
|
266
266
|
## 版本
|
|
267
267
|
|
|
268
|
-
- **Version**: 0.7.
|
|
268
|
+
- **Version**: 0.7.1
|
|
269
269
|
- **Author**: Jingkai Sun
|
|
270
270
|
|
|
271
271
|
## 许可证
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SuperModelingFactory
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.
|
|
5
5
|
Home-page: https://github.com/Kyle-J-Sun/SuperModelingFactory
|
|
6
6
|
Author: Kyle Sun
|
|
@@ -265,7 +265,7 @@ em.close_workbook()
|
|
|
265
265
|
|
|
266
266
|
## 版本
|
|
267
267
|
|
|
268
|
-
- **Version**: 0.7.
|
|
268
|
+
- **Version**: 0.7.1
|
|
269
269
|
- **Author**: Jingkai Sun
|
|
270
270
|
|
|
271
271
|
## 许可证
|
|
@@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
|
|
|
12
12
|
|
|
13
13
|
[project]
|
|
14
14
|
name = "SuperModelingFactory"
|
|
15
|
-
version = "0.7.
|
|
15
|
+
version = "0.7.1"
|
|
16
16
|
description = "Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting."
|
|
17
17
|
readme = "README.md"
|
|
18
18
|
requires-python = ">=3.10"
|
|
@@ -15,7 +15,7 @@ def _read(path: str) -> str:
|
|
|
15
15
|
|
|
16
16
|
setup(
|
|
17
17
|
name="SuperModelingFactory",
|
|
18
|
-
version=os.environ.get("SMF_VERSION", "0.7.
|
|
18
|
+
version=os.environ.get("SMF_VERSION", "0.7.1"),
|
|
19
19
|
description="Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.",
|
|
20
20
|
long_description=_read("README.md"),
|
|
21
21
|
long_description_content_type="text/markdown",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Binning_Tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Binning_Tool.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Json_Data_Converter.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Model_Registry_Tool.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Parallel_Engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/Proc_Compare.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/XOR_Encryptor.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/XOR_Encryptor.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Core/sample_weight_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Evaluation_Tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Model_Eval_Tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/evaluate_model.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/evaluate_model.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Eval/weighted_eval_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Explainability/__init__.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Distribution_Tool.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Insights.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Feature_Screen.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/PSI_Tool.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Screen_Gates.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Feature/Weighted_Screen.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/Backward_Tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/Backward_Tool.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Model/GBM_Search_Tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/credit_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/field_meta.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/mock_sample.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/orchestrator.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/reject_inference.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/sample_analysis.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Pipeline/score_comparison.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Reject_Infer.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Reject_Infer.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Sample_Split.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/Sample/Sample_Split.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Report_Builder.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/plot_woe_tool.py
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/WOE/plot_woe_tool.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/Modeling_Tool/ref_font/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{supermodelingfactory-0.7.0 → supermodelingfactory-0.7.1}/SuperModelingFactory.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|