geocif 0.1.95__tar.gz → 0.1.97__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 (83) hide show
  1. {geocif-0.1.95/geocif.egg-info → geocif-0.1.97}/PKG-INFO +1 -1
  2. {geocif-0.1.95 → geocif-0.1.97}/geocif/geocif.py +1 -1
  3. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/feature_selection.py +23 -1
  4. {geocif-0.1.95 → geocif-0.1.97/geocif.egg-info}/PKG-INFO +1 -1
  5. {geocif-0.1.95 → geocif-0.1.97}/setup.py +1 -1
  6. {geocif-0.1.95 → geocif-0.1.97}/LICENSE +0 -0
  7. {geocif-0.1.95 → geocif-0.1.97}/MANIFEST.in +0 -0
  8. {geocif-0.1.95 → geocif-0.1.97}/README.md +0 -0
  9. {geocif-0.1.95 → geocif-0.1.97}/geocif/__init__.py +0 -0
  10. {geocif-0.1.95 → geocif-0.1.97}/geocif/agmet/__init__.py +0 -0
  11. {geocif-0.1.95 → geocif-0.1.97}/geocif/agmet/geoagmet.py +0 -0
  12. {geocif-0.1.95 → geocif-0.1.97}/geocif/agmet/plot.py +0 -0
  13. {geocif-0.1.95 → geocif-0.1.97}/geocif/agmet/utils.py +0 -0
  14. {geocif-0.1.95 → geocif-0.1.97}/geocif/analysis.py +0 -0
  15. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/__init__.py +0 -0
  16. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/constants.py +0 -0
  17. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/features.py +0 -0
  18. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/geo.py +0 -0
  19. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/geocif.py +0 -0
  20. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/metadata.py +0 -0
  21. {geocif-0.1.95 → geocif-0.1.97}/geocif/backup/models.py +0 -0
  22. {geocif-0.1.95 → geocif-0.1.97}/geocif/cei/__init__.py +0 -0
  23. {geocif-0.1.95 → geocif-0.1.97}/geocif/cei/definitions.py +0 -0
  24. {geocif-0.1.95 → geocif-0.1.97}/geocif/cei/indices.py +0 -0
  25. {geocif-0.1.95 → geocif-0.1.97}/geocif/experiments.py +0 -0
  26. {geocif-0.1.95 → geocif-0.1.97}/geocif/geocif_runner.py +0 -0
  27. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner.py +0 -0
  28. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_angola.py +0 -0
  29. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_madagascar.py +0 -0
  30. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_malawi.py +0 -0
  31. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_mozambique.py +0 -0
  32. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_south_africa.py +0 -0
  33. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_zambia.py +0 -0
  34. {geocif-0.1.95 → geocif-0.1.97}/geocif/indices_runner_zimbabwe.py +0 -0
  35. {geocif-0.1.95 → geocif-0.1.97}/geocif/logger.py +0 -0
  36. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/__init__.py +0 -0
  37. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/correlations.py +0 -0
  38. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/embedding.py +0 -0
  39. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/feature_engineering.py +0 -0
  40. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/outliers.py +0 -0
  41. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/outlook.py +0 -0
  42. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/output.py +0 -0
  43. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/spatial_autocorrelation.py +0 -0
  44. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/stages.py +0 -0
  45. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/stats.py +0 -0
  46. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/trainers.py +0 -0
  47. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/trend.py +0 -0
  48. {geocif-0.1.95 → geocif-0.1.97}/geocif/ml/xai.py +0 -0
  49. {geocif-0.1.95 → geocif-0.1.97}/geocif/mm.py +0 -0
  50. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/__init__.py +0 -0
  51. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/aa.py +0 -0
  52. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/area.py +0 -0
  53. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/automl.py +0 -0
  54. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/download_esi.py +0 -0
  55. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/enso.py +0 -0
  56. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/eval.py +0 -0
  57. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/gamtest.py +0 -0
  58. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/gee_access.py +0 -0
  59. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/misc.py +0 -0
  60. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/play_xagg.py +0 -0
  61. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/reg.py +0 -0
  62. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/sustain.py +0 -0
  63. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/test_catboost.py +0 -0
  64. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/tmp.py +0 -0
  65. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/tmp2.py +0 -0
  66. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/tmp3.py +0 -0
  67. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/tmp4.py +0 -0
  68. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/tmp5.py +0 -0
  69. {geocif-0.1.95 → geocif-0.1.97}/geocif/playground/wolayita_maize_mask.py +0 -0
  70. {geocif-0.1.95 → geocif-0.1.97}/geocif/risk/__init__.py +0 -0
  71. {geocif-0.1.95 → geocif-0.1.97}/geocif/risk/impact_assessment.py +0 -0
  72. {geocif-0.1.95 → geocif-0.1.97}/geocif/utils.py +0 -0
  73. {geocif-0.1.95 → geocif-0.1.97}/geocif/viz/__init__.py +0 -0
  74. {geocif-0.1.95 → geocif-0.1.97}/geocif/viz/gt.py +0 -0
  75. {geocif-0.1.95 → geocif-0.1.97}/geocif/viz/plot.py +0 -0
  76. {geocif-0.1.95 → geocif-0.1.97}/geocif/viz/tmp.py +0 -0
  77. {geocif-0.1.95 → geocif-0.1.97}/geocif.egg-info/SOURCES.txt +0 -0
  78. {geocif-0.1.95 → geocif-0.1.97}/geocif.egg-info/dependency_links.txt +0 -0
  79. {geocif-0.1.95 → geocif-0.1.97}/geocif.egg-info/not-zip-safe +0 -0
  80. {geocif-0.1.95 → geocif-0.1.97}/geocif.egg-info/top_level.txt +0 -0
  81. {geocif-0.1.95 → geocif-0.1.97}/requirements.txt +0 -0
  82. {geocif-0.1.95 → geocif-0.1.97}/setup.cfg +0 -0
  83. {geocif-0.1.95 → geocif-0.1.97}/tests/test_geocif.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.1.95
3
+ Version: 0.1.97
4
4
  Summary: Models to visualize and forecast crop conditions and yields
5
5
  Home-page: https://ritviksahajpal.github.io/yield_forecasting/
6
6
  Author: Ritvik Sahajpal
@@ -18,7 +18,6 @@ from geocif import logger as log
18
18
  from geocif import utils
19
19
  from .cei import definitions as di
20
20
  from .ml import correlations
21
- from .ml import spatial_autocorrelation as sa
22
21
  from .ml import feature_engineering as fe
23
22
  from .ml import feature_selection as fs
24
23
  from .ml import output
@@ -1171,6 +1170,7 @@ class Geocif:
1171
1170
  dict_kwargs["correlation_threshold"] = self.correlation_threshold
1172
1171
 
1173
1172
  if self.spatial_autocorrelation:
1173
+ from .ml import spatial_autocorrelation as sa
1174
1174
  sa.compute_spatial_autocorrelation(self.df_inputs, **dict_kwargs)
1175
1175
 
1176
1176
  dict_selected_features = {}
@@ -133,6 +133,27 @@ def select_features(X, y, method="RFE", min_features_to_select=3, threshold_nan=
133
133
  selected_features = (
134
134
  shap_importance_df["feature"].head(optimal_N).values.tolist()
135
135
  )
136
+ elif method == "stabl":
137
+ from stabl.stabl import Stabl
138
+ from sklearn.linear_model import LogisticRegression
139
+
140
+ lasso = LogisticRegression(
141
+ penalty="l1", class_weight="balanced", max_iter=int(1e6), solver="liblinear", random_state=42
142
+ )
143
+ stabl = Stabl(
144
+ base_estimator=lasso,
145
+ n_bootstraps=100,
146
+ artificial_type="knockoff",
147
+ artificial_proportion=.5,
148
+ replace=False,
149
+ fdr_threshold_range=np.arange(0.1, 1, 0.01),
150
+ sample_fraction=0.5,
151
+ random_state=42,
152
+ lambda_grid={"C": np.linspace(0.004, 0.4, 30)},
153
+ verbose=1
154
+ )
155
+ stabl.fit(X, y)
156
+ selected_features = stabl.get_feature_names_out()
136
157
  elif method == "feature_engine":
137
158
  from feature_engine.selection import SmartCorrelatedSelection
138
159
 
@@ -304,7 +325,8 @@ def select_features(X, y, method="RFE", min_features_to_select=3, threshold_nan=
304
325
  else:
305
326
  raise ValueError("Method not recognized. Use BorutaPy, Genetic, or RFE")
306
327
  # tentative_features = X.columns[selector.support_weak_].tolist()
307
-
328
+ print(selected_features)
329
+ breakpoint()
308
330
  non_eo = are_all_features_non_eo(selected_features)
309
331
  if non_eo or method == "SelectKBest":
310
332
  from sklearn.feature_selection import SelectKBest, f_regression
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.1.95
3
+ Version: 0.1.97
4
4
  Summary: Models to visualize and forecast crop conditions and yields
5
5
  Home-page: https://ritviksahajpal.github.io/yield_forecasting/
6
6
  Author: Ritvik Sahajpal
@@ -50,6 +50,6 @@ setup(
50
50
  test_suite="tests",
51
51
  tests_require=test_requirements,
52
52
  url="https://ritviksahajpal.github.io/yield_forecasting/",
53
- version="0.1.95",
53
+ version="0.1.97",
54
54
  zip_safe=False,
55
55
  )
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes