upgini 1.2.167a4220.dev11__tar.gz → 1.2.167a4220.dev13__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.
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/PKG-INFO +1 -1
- upgini-1.2.167a4220.dev13/src/upgini/__about__.py +1 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/assemble.py +11 -67
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/html.py +22 -16
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/deduplicate_utils.py +13 -4
- upgini-1.2.167a4220.dev11/src/upgini/__about__.py +0 -1
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/.gitignore +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/LICENSE +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/README.md +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/pyproject.toml +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/ads.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/ads_management/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/ads_management/ads_manager.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/all_operators.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/binary.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/date.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/feature.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/groupby.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/operand.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/operator.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/base.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/cross.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/delta.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/lag.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/numpy_kernels.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/roll.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/trend.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/volatility.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/unary.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/vector.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/data_source/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/data_source/data_source_publisher.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/dataset.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/errors.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/features_enricher.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/http.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/mdc/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/mdc/context.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/metadata.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/metrics.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/normalizer/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/normalizer/normalize_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/data.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/stats.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/report/template.html +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/exceptions.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/strings.properties +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/strings_widget.properties +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/sampler/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/sampler/base.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/sampler/random_under_sampler.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/sampler/utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/search_task.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/spinner.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/Roboto-Regular.ttf +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/__init__.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/base_search_key_detector.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/blocked_time_series.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/config.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/country_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/cpu_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/custom_loss_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/cv_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/datetime_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/display_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/email_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/fallback_progress_bar.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/feature_info.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/features_validator.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/format.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/hash_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/ip_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/mstats.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/one_hot_encoder.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/phone_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/postal_code_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/progress_bar.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/psi.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/pyarrow_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/sample_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/search_key_derivations.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/sklearn_ext.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/sort.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/target_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/track_info.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/ts_utils.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/warning_counter.py +0 -0
- {upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/version_validator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: upgini
|
|
3
|
-
Version: 1.2.167a4220.
|
|
3
|
+
Version: 1.2.167a4220.dev13
|
|
4
4
|
Summary: Intelligent data search & enrichment for Machine Learning
|
|
5
5
|
Project-URL: Bug Reports, https://github.com/upgini/upgini/issues
|
|
6
6
|
Project-URL: Homepage, https://upgini.com/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.167.a4220.dev13"
|
|
@@ -22,7 +22,7 @@ from upgini.report.data import (
|
|
|
22
22
|
)
|
|
23
23
|
from upgini.report.stats import PSI_CRITICAL, PSI_WARNING, compute_report_charts
|
|
24
24
|
from upgini.resource_bundle import ResourceBundle
|
|
25
|
-
from upgini.utils.feature_info import FeatureInfo
|
|
25
|
+
from upgini.utils.feature_info import CLIENT_SOURCE, GENERATED_SOURCE, FeatureInfo
|
|
26
26
|
|
|
27
27
|
UPGINI_REPORT_BRANDING_URL = "UPGINI_REPORT_BRANDING_URL"
|
|
28
28
|
_STABILITY_PSI = 0.2
|
|
@@ -129,7 +129,6 @@ def build_search_results(
|
|
|
129
129
|
]
|
|
130
130
|
sources = _source_rows(found_rows)
|
|
131
131
|
summary = _overview_summary(
|
|
132
|
-
features_meta=features_meta,
|
|
133
132
|
model_rows=model_rows,
|
|
134
133
|
found_rows=found_rows,
|
|
135
134
|
sources=sources,
|
|
@@ -304,7 +303,6 @@ def _has_nonzero_shap_value(shap: Optional[float]) -> bool:
|
|
|
304
303
|
|
|
305
304
|
def _overview_summary(
|
|
306
305
|
*,
|
|
307
|
-
features_meta: list[FeaturesMetadataV2],
|
|
308
306
|
model_rows: list[FeatureRow],
|
|
309
307
|
found_rows: list[FeatureRow],
|
|
310
308
|
sources: list[SourceRow],
|
|
@@ -314,21 +312,16 @@ def _overview_summary(
|
|
|
314
312
|
joined_ads_count: Optional[int],
|
|
315
313
|
) -> SearchResultsSummary:
|
|
316
314
|
top_level = _unique_fold_model_inputs(generated_features)
|
|
317
|
-
features_by_name = {meta.name: meta for meta in features_meta}
|
|
318
315
|
autofe_by_name = _autofe_generated_by_name(generated_features, is_ensemble)
|
|
319
|
-
columns_by_name = _base_columns_by_name(generated_features)
|
|
320
316
|
ads_ids = _contributed_ads_ids(generated_features, autofe_by_name)
|
|
321
317
|
if top_level:
|
|
322
318
|
counts = {"external": 0, "original": 0, "autofe": 0}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
counts[kind] += 1
|
|
327
|
-
meta = _feature_meta_for_node(node, features_by_name, columns_by_name)
|
|
328
|
-
psis.append(None if meta is None else meta.psi_value)
|
|
329
|
-
model_features = len(top_level)
|
|
319
|
+
for row in model_rows:
|
|
320
|
+
counts[_model_row_kind(row)] += 1
|
|
321
|
+
model_features = len(model_rows)
|
|
330
322
|
external, original, autofe = counts["external"], counts["original"], counts["autofe"]
|
|
331
323
|
contributed = len(ads_ids or set())
|
|
324
|
+
psis = [row.psi for row in model_rows]
|
|
332
325
|
else:
|
|
333
326
|
model_features = len(model_rows) or None
|
|
334
327
|
external = original = autofe = None
|
|
@@ -383,38 +376,6 @@ def _top_level_key(node: Column | Feature) -> str:
|
|
|
383
376
|
return f"fe:{node.to_formula()}"
|
|
384
377
|
|
|
385
378
|
|
|
386
|
-
def _base_columns_by_name(generated_features: list[GeneratedFeatureMetadata]) -> dict[str, BaseColumnMetadata]:
|
|
387
|
-
by_name: dict[str, BaseColumnMetadata] = {}
|
|
388
|
-
for meta in generated_features:
|
|
389
|
-
for column in meta.base_columns:
|
|
390
|
-
if column.hashed_name:
|
|
391
|
-
by_name.setdefault(column.hashed_name, column)
|
|
392
|
-
if column.original_name:
|
|
393
|
-
by_name.setdefault(column.original_name, column)
|
|
394
|
-
return by_name
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
def _column_names(node: Column, columns_by_name: dict[str, BaseColumnMetadata]) -> list[str]:
|
|
398
|
-
names = [node.name]
|
|
399
|
-
column = columns_by_name.get(node.name)
|
|
400
|
-
if column is not None:
|
|
401
|
-
names.extend([column.hashed_name, column.original_name])
|
|
402
|
-
return [name for name in names if name]
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
def _feature_meta_for_node(
|
|
406
|
-
node: Column | Feature,
|
|
407
|
-
features_by_name: dict[str, FeaturesMetadataV2],
|
|
408
|
-
columns_by_name: dict[str, BaseColumnMetadata],
|
|
409
|
-
) -> Optional[FeaturesMetadataV2]:
|
|
410
|
-
if not isinstance(node, Column):
|
|
411
|
-
return None
|
|
412
|
-
return next(
|
|
413
|
-
(features_by_name[name] for name in _column_names(node, columns_by_name) if name in features_by_name),
|
|
414
|
-
None,
|
|
415
|
-
)
|
|
416
|
-
|
|
417
|
-
|
|
418
379
|
def _autofe_generated_by_name(
|
|
419
380
|
generated_features: list[GeneratedFeatureMetadata], is_ensemble: Callable[[str], bool]
|
|
420
381
|
) -> dict[str, GeneratedFeatureMetadata]:
|
|
@@ -452,30 +413,13 @@ def _generated_feature_names(meta: GeneratedFeatureMetadata) -> set[str]:
|
|
|
452
413
|
return {feature.get_display_name(shorten=True, unhash=True, cache=False)}
|
|
453
414
|
|
|
454
415
|
|
|
455
|
-
def
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
columns_by_name: dict[str, BaseColumnMetadata],
|
|
459
|
-
autofe_by_name: dict[str, GeneratedFeatureMetadata],
|
|
460
|
-
is_ensemble: Callable[[str], bool],
|
|
461
|
-
) -> str:
|
|
462
|
-
if isinstance(node, Feature):
|
|
463
|
-
return "autofe"
|
|
464
|
-
names = _column_names(node, columns_by_name)
|
|
465
|
-
if any(name in autofe_by_name for name in names):
|
|
416
|
+
def _model_row_kind(row: FeatureRow) -> str:
|
|
417
|
+
source = (row.source or "").lower()
|
|
418
|
+
if source.startswith("autofe") or source == GENERATED_SOURCE.lower():
|
|
466
419
|
return "autofe"
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
return "autofe"
|
|
471
|
-
if meta.source == "ads":
|
|
472
|
-
return "external"
|
|
473
|
-
if meta.source == "etalon":
|
|
474
|
-
return "original"
|
|
475
|
-
column = next((columns_by_name[name] for name in names if name in columns_by_name), None)
|
|
476
|
-
if column is not None and column.ads_definition_id:
|
|
477
|
-
return "external"
|
|
478
|
-
return "original"
|
|
420
|
+
if source == CLIENT_SOURCE.lower():
|
|
421
|
+
return "original"
|
|
422
|
+
return "external"
|
|
479
423
|
|
|
480
424
|
|
|
481
425
|
def _contributed_ads_ids(
|
|
@@ -41,7 +41,7 @@ def _report_payload(data: ReportData) -> dict:
|
|
|
41
41
|
"features": _features_payload(data.features),
|
|
42
42
|
"shap": {"topN": 5},
|
|
43
43
|
"searchResults": {
|
|
44
|
-
"relevantFeaturesCount": _dash(data.summary.relevant_features),
|
|
44
|
+
"relevantFeaturesCount": _dash(len(data.features) if data.features else data.summary.relevant_features),
|
|
45
45
|
"dataSourcesCount": _dash(data.summary.data_sources),
|
|
46
46
|
"autofeCount": _dash(len(data.autofe)),
|
|
47
47
|
"sources": _sources_payload(data.sources),
|
|
@@ -170,21 +170,27 @@ def _used_in_model_caption(summary: SearchResultsSummary) -> str:
|
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def _features_payload(features: list[FeatureRow]) -> list[dict]:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
173
|
+
rows = []
|
|
174
|
+
for row in features:
|
|
175
|
+
shap_class = _shap_fill_class(row)
|
|
176
|
+
provider = row.provider
|
|
177
|
+
if not provider and shap_class == "user":
|
|
178
|
+
provider = CLIENT_SOURCE
|
|
179
|
+
rows.append(
|
|
180
|
+
{
|
|
181
|
+
"name": row.name,
|
|
182
|
+
"provider": provider,
|
|
183
|
+
"source": row.source,
|
|
184
|
+
"shapClass": shap_class,
|
|
185
|
+
"importance": abs(row.shap) if row.shap is not None else 0,
|
|
186
|
+
"shap": row.shap,
|
|
187
|
+
"coverage": row.coverage,
|
|
188
|
+
"status": row.stability_status,
|
|
189
|
+
"psi": row.psi,
|
|
190
|
+
"drift": row.drift,
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
return rows
|
|
188
194
|
|
|
189
195
|
|
|
190
196
|
def _shap_fill_class(row: FeatureRow) -> str:
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/deduplicate_utils.py
RENAMED
|
@@ -17,6 +17,15 @@ from upgini.resource_bundle import ResourceBundle, get_custom_bundle
|
|
|
17
17
|
from upgini.utils.datetime_utils import DateTimeConverter
|
|
18
18
|
from upgini.utils.target_utils import define_task
|
|
19
19
|
|
|
20
|
+
_INDEX_SAMPLE = 3
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _format_index_sample(indexes) -> str:
|
|
24
|
+
values = list(indexes)
|
|
25
|
+
if len(values) <= _INDEX_SAMPLE:
|
|
26
|
+
return str(values)
|
|
27
|
+
return str(values[:_INDEX_SAMPLE])[:-1] + ", ...]"
|
|
28
|
+
|
|
20
29
|
|
|
21
30
|
def remove_fintech_duplicates(
|
|
22
31
|
df: pd.DataFrame,
|
|
@@ -117,11 +126,11 @@ def remove_fintech_duplicates(
|
|
|
117
126
|
perc = len(rows_to_remove) * 100 / len(segment_df)
|
|
118
127
|
if eval_index == 0:
|
|
119
128
|
msg = bundle.get("dataset_train_diff_target_duplicates_fintech").format(
|
|
120
|
-
perc, len(rows_to_remove), rows_to_remove.index
|
|
129
|
+
perc, len(rows_to_remove), _format_index_sample(rows_to_remove.index)
|
|
121
130
|
)
|
|
122
131
|
else:
|
|
123
132
|
msg = bundle.get("dataset_eval_diff_target_duplicates_fintech").format(
|
|
124
|
-
perc, len(rows_to_remove), eval_index, rows_to_remove.index
|
|
133
|
+
perc, len(rows_to_remove), eval_index, _format_index_sample(rows_to_remove.index)
|
|
125
134
|
)
|
|
126
135
|
return segment_df[~segment_df.index.isin(rows_to_remove.index)], msg
|
|
127
136
|
return segment_df, None
|
|
@@ -227,7 +236,7 @@ def clean_full_duplicates(
|
|
|
227
236
|
|
|
228
237
|
marked_duplicates = df_for_dedup.duplicated(subset=unique_columns, keep=False)
|
|
229
238
|
if marked_duplicates.sum() > 0:
|
|
230
|
-
dups_indices = df_for_dedup[marked_duplicates].index
|
|
239
|
+
dups_indices = _format_index_sample(df_for_dedup[marked_duplicates].index)
|
|
231
240
|
nrows_after_tgt_dedup = len(df_for_dedup.drop_duplicates(subset=unique_columns, keep=False))
|
|
232
241
|
num_dup_rows = len(df_for_dedup) - nrows_after_tgt_dedup
|
|
233
242
|
share_tgt_dedup = 100 * num_dup_rows / len(df_for_dedup)
|
|
@@ -240,7 +249,7 @@ def clean_full_duplicates(
|
|
|
240
249
|
df = pd.concat([df_for_dedup, oot_df], ignore_index=False)
|
|
241
250
|
marked_duplicates = df.duplicated(subset=unique_columns, keep=False)
|
|
242
251
|
if marked_duplicates.sum() > 0:
|
|
243
|
-
dups_indices = df[marked_duplicates].index
|
|
252
|
+
dups_indices = _format_index_sample(df[marked_duplicates].index)
|
|
244
253
|
nrows_after_tgt_dedup = len(df.drop_duplicates(subset=unique_columns, keep=False))
|
|
245
254
|
num_dup_rows = len(df) - nrows_after_tgt_dedup
|
|
246
255
|
share_tgt_dedup = 100 * num_dup_rows / len(df)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.167.a4220.dev11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/ads_management/__init__.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/ads_management/ads_manager.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
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/__init__.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/base.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/cross.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/delta.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/roll.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/trend.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/autofe/timeseries/volatility.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/normalizer/normalize_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/__init__.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/resource_bundle/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/sampler/random_under_sampler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/base_search_key_detector.py
RENAMED
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/blocked_time_series.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/custom_loss_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/fallback_progress_bar.py
RENAMED
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/features_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/postal_code_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.167a4220.dev11 → upgini-1.2.167a4220.dev13}/src/upgini/utils/search_key_derivations.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
|