classifier-toolkit 0.1.3__tar.gz → 0.1.4__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.
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/PKG-INFO +1 -1
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/eda_toolkit.py +12 -4
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/feature_engineering.py +9 -48
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/first_glance.py +1 -1
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/pyproject.toml +1 -1
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/README.md +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/bivariate_analysis.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/univariate_analysis.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/visualizations.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/warnings/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/warnings/automated_warnings.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/warnings/default_warnings.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/base.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/embedded_methods/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/embedded_methods/elastic_net.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/meta_selector.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/utils/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/utils/plottings.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/utils/scoring.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/wrapper_methods/__init__.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/wrapper_methods/rfe.py +0 -0
- {classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/wrapper_methods/sequential_selection.py +0 -0
|
@@ -206,12 +206,20 @@ class EDAToolkit:
|
|
|
206
206
|
self.first_glance.super_vision()
|
|
207
207
|
self.first_glance.check_duplicates()
|
|
208
208
|
|
|
209
|
-
def plot_target_evolution(self):
|
|
209
|
+
def plot_target_evolution(self, time_column: str, evolving_numeric: str):
|
|
210
210
|
"""
|
|
211
211
|
Plot the target balance and evolution over time.
|
|
212
|
+
|
|
213
|
+
Parameters
|
|
214
|
+
----------
|
|
215
|
+
time_column : str
|
|
216
|
+
The name of the time column.
|
|
217
|
+
evolving_numeric : str
|
|
218
|
+
The name of the numerical column to plot that we want to see the evolution of
|
|
219
|
+
which helps us understanding the behavior of the target column.
|
|
212
220
|
"""
|
|
213
221
|
self.visualizations.plot_target_balance()
|
|
214
|
-
self.visualizations.plot_target_evolution(
|
|
222
|
+
self.visualizations.plot_target_evolution(time_column, evolving_numeric)
|
|
215
223
|
|
|
216
224
|
def plot_numerical_distributions(self, sub_plots: bool = False):
|
|
217
225
|
"""
|
|
@@ -232,7 +240,7 @@ class EDAToolkit:
|
|
|
232
240
|
"""
|
|
233
241
|
self.visualizations.plot_categorical_value_counts()
|
|
234
242
|
self.visualizations.visualize_high_cardinality(
|
|
235
|
-
|
|
243
|
+
excluded_columns=self.exclusion, id_column=self.id_column
|
|
236
244
|
)
|
|
237
245
|
self.visualizations.visualize_low_cardinality()
|
|
238
246
|
|
|
@@ -377,7 +385,7 @@ class EDAToolkit:
|
|
|
377
385
|
"""
|
|
378
386
|
_, filtered_cramers = self.univariate_analysis.plot_cramers_v(
|
|
379
387
|
self.numerical_columns,
|
|
380
|
-
|
|
388
|
+
excluded_columns=self.exclusion,
|
|
381
389
|
filter_threshold=threshold_c,
|
|
382
390
|
)
|
|
383
391
|
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/feature_engineering.py
RENAMED
|
@@ -364,9 +364,11 @@ class FeatureEngineering:
|
|
|
364
364
|
raise ValueError(f"Column {column} not found in transformed data")
|
|
365
365
|
|
|
366
366
|
self.data = updated_data
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
367
|
+
|
|
368
|
+
for transform in self.transformations:
|
|
369
|
+
if transform["method"] == "normality_transform":
|
|
370
|
+
transform["selected_columns"] = columns_to_keep
|
|
371
|
+
|
|
370
372
|
return self.data
|
|
371
373
|
|
|
372
374
|
def handle_high_cardinality(
|
|
@@ -990,7 +992,10 @@ class FeatureEngineering:
|
|
|
990
992
|
|
|
991
993
|
self.data = data
|
|
992
994
|
self.data.info()
|
|
993
|
-
self._log_transformation(
|
|
995
|
+
self._log_transformation(
|
|
996
|
+
"encoding_categorical",
|
|
997
|
+
{"method": method, "selected_columns": self.encode_list},
|
|
998
|
+
)
|
|
994
999
|
return self.data
|
|
995
1000
|
|
|
996
1001
|
####### FEATURE ENGINEERING: OPTIONAL FUNCTIONS #######
|
|
@@ -1264,47 +1269,3 @@ class FeatureEngineering:
|
|
|
1264
1269
|
return self.data
|
|
1265
1270
|
|
|
1266
1271
|
percentile_capping = apply_winsorization
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
'''
|
|
1270
|
-
def apply_winsorization(
|
|
1271
|
-
self, selected_columns: List[str], percentile: float = 0.05
|
|
1272
|
-
) -> pd.DataFrame:
|
|
1273
|
-
"""
|
|
1274
|
-
Apply winsorization to numerical columns to limit extreme values.
|
|
1275
|
-
|
|
1276
|
-
Parameters
|
|
1277
|
-
----------
|
|
1278
|
-
selected_columns : List[str]
|
|
1279
|
-
List of columns to apply winsorization to.
|
|
1280
|
-
percentile : float, optional
|
|
1281
|
-
The percentage of data to be considered as extreme values on each side, by default 0.05.
|
|
1282
|
-
|
|
1283
|
-
Returns
|
|
1284
|
-
-------
|
|
1285
|
-
pd.DataFrame
|
|
1286
|
-
DataFrame with winsorized columns.
|
|
1287
|
-
"""
|
|
1288
|
-
if len(selected_columns) == 0:
|
|
1289
|
-
selected_columns = self.numerical_columns
|
|
1290
|
-
|
|
1291
|
-
for column in selected_columns:
|
|
1292
|
-
if column == self.target_column:
|
|
1293
|
-
print(f"{column} is the target column. Skipping winsorization.")
|
|
1294
|
-
continue
|
|
1295
|
-
|
|
1296
|
-
lower_bound = np.percentile(self.data[column], percentile * 100)
|
|
1297
|
-
upper_bound = np.percentile(self.data[column], (1 - percentile) * 100)
|
|
1298
|
-
self.data[column] = np.clip(self.data[column], lower_bound, upper_bound)
|
|
1299
|
-
|
|
1300
|
-
print(f"\nWinsorization applied with {percentile * 100}% capping on each side.")
|
|
1301
|
-
print(self.data[selected_columns].describe())
|
|
1302
|
-
|
|
1303
|
-
self._log_transformation(
|
|
1304
|
-
"winsorization",
|
|
1305
|
-
{"selected_columns": selected_columns, "percentile": percentile},
|
|
1306
|
-
)
|
|
1307
|
-
return self.data
|
|
1308
|
-
|
|
1309
|
-
percentile_capping = apply_winsorization
|
|
1310
|
-
'''
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/first_glance.py
RENAMED
|
@@ -112,7 +112,7 @@ values in more detail, please call the see_duplicates method
|
|
|
112
112
|
top_n : int, optional
|
|
113
113
|
Number of top values to display, by default 10.
|
|
114
114
|
"""
|
|
115
|
-
for col in self.
|
|
115
|
+
for col in self.categorical_columns:
|
|
116
116
|
print(Fore.GREEN + f"\nColumn: {col}")
|
|
117
117
|
value_counts = self.data[col].value_counts().head(top_n)
|
|
118
118
|
for value, count in value_counts.items():
|
|
File without changes
|
|
File without changes
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/bivariate_analysis.py
RENAMED
|
File without changes
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/univariate_analysis.py
RENAMED
|
File without changes
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/visualizations.py
RENAMED
|
File without changes
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/eda/warnings/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifier_toolkit-0.1.3 → classifier_toolkit-0.1.4}/classifier_toolkit/feature_selection/base.py
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
|
|
File without changes
|