upgini 1.2.68a3832.dev11__tar.gz → 1.2.68a3832.dev12__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.
Files changed (78) hide show
  1. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/PKG-INFO +1 -1
  2. upgini-1.2.68a3832.dev12/src/upgini/__about__.py +1 -0
  3. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/http.py +4 -1
  4. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/metrics.py +21 -11
  5. upgini-1.2.68a3832.dev11/src/upgini/__about__.py +0 -1
  6. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/.gitignore +0 -0
  7. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/LICENSE +0 -0
  8. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/README.md +0 -0
  9. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/pyproject.toml +0 -0
  10. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/__init__.py +0 -0
  11. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/ads.py +0 -0
  12. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/ads_management/__init__.py +0 -0
  13. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/ads_management/ads_manager.py +0 -0
  14. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/__init__.py +0 -0
  15. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/all_operators.py +0 -0
  16. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/binary.py +0 -0
  17. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/date.py +0 -0
  18. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/feature.py +0 -0
  19. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/groupby.py +0 -0
  20. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/operator.py +0 -0
  21. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/__init__.py +0 -0
  22. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/base.py +0 -0
  23. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/cross.py +0 -0
  24. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/delta.py +0 -0
  25. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/lag.py +0 -0
  26. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/roll.py +0 -0
  27. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/trend.py +0 -0
  28. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/timeseries/volatility.py +0 -0
  29. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/unary.py +0 -0
  30. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/autofe/vector.py +0 -0
  31. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/data_source/__init__.py +0 -0
  32. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/data_source/data_source_publisher.py +0 -0
  33. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/dataset.py +0 -0
  34. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/errors.py +0 -0
  35. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/features_enricher.py +0 -0
  36. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/lazy_import.py +0 -0
  37. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/mdc/__init__.py +0 -0
  38. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/mdc/context.py +0 -0
  39. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/metadata.py +0 -0
  40. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/normalizer/__init__.py +0 -0
  41. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/normalizer/normalize_utils.py +0 -0
  42. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/resource_bundle/__init__.py +0 -0
  43. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/resource_bundle/exceptions.py +0 -0
  44. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/resource_bundle/strings.properties +0 -0
  45. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  46. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/sampler/__init__.py +0 -0
  47. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/sampler/base.py +0 -0
  48. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/sampler/random_under_sampler.py +0 -0
  49. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/sampler/utils.py +0 -0
  50. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/search_task.py +0 -0
  51. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/spinner.py +0 -0
  52. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  53. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/__init__.py +0 -0
  54. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/base_search_key_detector.py +0 -0
  55. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/blocked_time_series.py +0 -0
  56. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/country_utils.py +0 -0
  57. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/custom_loss_utils.py +0 -0
  58. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/cv_utils.py +0 -0
  59. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/datetime_utils.py +0 -0
  60. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/deduplicate_utils.py +0 -0
  61. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/display_utils.py +0 -0
  62. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/email_utils.py +0 -0
  63. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/fallback_progress_bar.py +0 -0
  64. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/feature_info.py +0 -0
  65. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/features_validator.py +0 -0
  66. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/format.py +0 -0
  67. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/ip_utils.py +0 -0
  68. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/mstats.py +0 -0
  69. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/phone_utils.py +0 -0
  70. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/postal_code_utils.py +0 -0
  71. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/progress_bar.py +0 -0
  72. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/sklearn_ext.py +0 -0
  73. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/sort.py +0 -0
  74. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/target_utils.py +0 -0
  75. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/track_info.py +0 -0
  76. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/ts_utils.py +0 -0
  77. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/utils/warning_counter.py +0 -0
  78. {upgini-1.2.68a3832.dev11 → upgini-1.2.68a3832.dev12}/src/upgini/version_validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: upgini
3
- Version: 1.2.68a3832.dev11
3
+ Version: 1.2.68a3832.dev12
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.68a3832.dev12"
@@ -16,6 +16,7 @@ from typing import Any, Dict, List, Optional, Tuple
16
16
  from urllib.parse import urljoin
17
17
 
18
18
  import jwt
19
+
19
20
  # import pandas as pd
20
21
  import requests
21
22
  from pydantic import BaseModel
@@ -342,7 +343,9 @@ class _RestClient:
342
343
  else:
343
344
  return self._syncronized_refresh_access_token()
344
345
 
345
- def _with_unauth_retry(self, request, try_number: int = 0, need_connection_retry: bool = True, silent: bool = False):
346
+ def _with_unauth_retry(
347
+ self, request, try_number: int = 0, need_connection_retry: bool = True, silent: bool = False
348
+ ):
346
349
  try:
347
350
  return request()
348
351
  except RequestException as e:
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import inspect
4
4
  import logging
5
5
  import re
6
+ import warnings
6
7
  from collections import defaultdict
7
8
  from copy import deepcopy
8
9
  from dataclasses import dataclass
@@ -359,7 +360,7 @@ class EstimatorWrapper:
359
360
  self.logger.info(f"After preparing data columns: {x.columns.to_list()}")
360
361
  return x, y, groups
361
362
 
362
- def _remove_empty_target_rows(self, x: pd.DataFrame, y: pd.Series) -> Tuple[pd.DataFrame, pd.Series]:
363
+ def _remove_empty_target_rows(self, x: pd.DataFrame, y: pd.Series) -> Tuple[pd.DataFrame, np.ndarray]:
363
364
  joined = pd.concat([x, y], axis=1)
364
365
  joined = joined[joined[y.name].notna()]
365
366
  joined = joined.reset_index(drop=True)
@@ -413,7 +414,10 @@ class EstimatorWrapper:
413
414
  for estimator, split in zip(self.cv_estimators, splits):
414
415
  _, validation_idx = split
415
416
  cv_x = x.iloc[validation_idx]
416
- cv_y = y[validation_idx]
417
+ if isinstance(y, pd.Series):
418
+ cv_y = y.iloc[validation_idx]
419
+ else:
420
+ cv_y = y[validation_idx]
417
421
  shaps = self.calculate_shap(cv_x, cv_y, estimator)
418
422
  if shaps is not None:
419
423
  for feature, shap_value in shaps.items():
@@ -760,29 +764,35 @@ class LightGBMWrapper(EstimatorWrapper):
760
764
  for feature in self.cat_features:
761
765
  x[feature] = x[feature].astype("category").cat.codes
762
766
  if not is_numeric_dtype(y_numpy):
763
- y = correct_string_target(y)
767
+ y_numpy = correct_string_target(y_numpy)
764
768
 
765
- return x, y, groups, params
769
+ return x, y_numpy, groups, params
766
770
 
767
771
  def _prepare_to_calculate(self, x: pd.DataFrame, y: pd.Series) -> Tuple[pd.DataFrame, np.ndarray, dict]:
768
- x, y, params = super()._prepare_to_calculate(x, y)
772
+ x, y_numpy, params = super()._prepare_to_calculate(x, y)
769
773
  if self.cat_features is not None:
770
774
  x = fill_na_cat_features(x, self.cat_features)
771
775
  for feature in self.cat_features:
772
776
  x[feature] = x[feature].astype("category").cat.codes
773
777
  if not is_numeric_dtype(y):
774
- y = correct_string_target(y)
775
- return x, y, params
778
+ y_numpy = correct_string_target(y_numpy)
779
+ return x, y_numpy, params
776
780
 
777
781
  def calculate_shap(self, x: pd.DataFrame, y: pd.Series, estimator) -> Optional[Dict[str, float]]:
778
782
  try:
779
- import lightgbm as lgb
780
- import shap
783
+ # Suppress specific warning from SHAP for LightGBM binary classifier
784
+ warnings.filterwarnings(
785
+ "ignore",
786
+ message=(
787
+ "LightGBM binary classifier with TreeExplainer shap values output has changed to a list of ndarray"
788
+ ),
789
+ )
790
+ from shap import TreeExplainer
781
791
 
782
- if not isinstance(estimator, (lgb.LGBMRegressor, lgb.LGBMClassifier)):
792
+ if not isinstance(estimator, (LGBMRegressor, LGBMClassifier)):
783
793
  return None
784
794
 
785
- explainer = shap.TreeExplainer(estimator)
795
+ explainer = TreeExplainer(estimator)
786
796
 
787
797
  shap_values = explainer.shap_values(x)
788
798
 
@@ -1 +0,0 @@
1
- __version__ = "1.2.68a3832.dev11"