geocif 0.2.29__tar.gz → 0.2.31__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.2.29/geocif.egg-info → geocif-0.2.31}/PKG-INFO +1 -1
  2. {geocif-0.2.29 → geocif-0.2.31}/geocif/geocif.py +1 -1
  3. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/feature_selection.py +19 -0
  4. {geocif-0.2.29 → geocif-0.2.31/geocif.egg-info}/PKG-INFO +1 -1
  5. {geocif-0.2.29 → geocif-0.2.31}/setup.py +1 -1
  6. {geocif-0.2.29 → geocif-0.2.31}/LICENSE +0 -0
  7. {geocif-0.2.29 → geocif-0.2.31}/MANIFEST.in +0 -0
  8. {geocif-0.2.29 → geocif-0.2.31}/README.md +0 -0
  9. {geocif-0.2.29 → geocif-0.2.31}/geocif/__init__.py +0 -0
  10. {geocif-0.2.29 → geocif-0.2.31}/geocif/agmet/__init__.py +0 -0
  11. {geocif-0.2.29 → geocif-0.2.31}/geocif/agmet/geoagmet.py +0 -0
  12. {geocif-0.2.29 → geocif-0.2.31}/geocif/agmet/plot.py +0 -0
  13. {geocif-0.2.29 → geocif-0.2.31}/geocif/agmet/utils.py +0 -0
  14. {geocif-0.2.29 → geocif-0.2.31}/geocif/analysis.py +0 -0
  15. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/__init__.py +0 -0
  16. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/constants.py +0 -0
  17. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/features.py +0 -0
  18. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/geo.py +0 -0
  19. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/geocif.py +0 -0
  20. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/metadata.py +0 -0
  21. {geocif-0.2.29 → geocif-0.2.31}/geocif/backup/models.py +0 -0
  22. {geocif-0.2.29 → geocif-0.2.31}/geocif/cei/__init__.py +0 -0
  23. {geocif-0.2.29 → geocif-0.2.31}/geocif/cei/definitions.py +0 -0
  24. {geocif-0.2.29 → geocif-0.2.31}/geocif/cei/indices.py +0 -0
  25. {geocif-0.2.29 → geocif-0.2.31}/geocif/experiments.py +0 -0
  26. {geocif-0.2.29 → geocif-0.2.31}/geocif/geocif_runner.py +0 -0
  27. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner.py +0 -0
  28. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_angola.py +0 -0
  29. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_madagascar.py +0 -0
  30. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_malawi.py +0 -0
  31. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_mozambique.py +0 -0
  32. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_south_africa.py +0 -0
  33. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_zambia.py +0 -0
  34. {geocif-0.2.29 → geocif-0.2.31}/geocif/indices_runner_zimbabwe.py +0 -0
  35. {geocif-0.2.29 → geocif-0.2.31}/geocif/logger.py +0 -0
  36. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/__init__.py +0 -0
  37. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/correlations.py +0 -0
  38. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/embedding.py +0 -0
  39. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/feature_engineering.py +0 -0
  40. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/outliers.py +0 -0
  41. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/outlook.py +0 -0
  42. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/output.py +0 -0
  43. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/spatial_autocorrelation.py +0 -0
  44. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/stages.py +0 -0
  45. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/stats.py +0 -0
  46. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/trainers.py +0 -0
  47. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/trend.py +0 -0
  48. {geocif-0.2.29 → geocif-0.2.31}/geocif/ml/xai.py +0 -0
  49. {geocif-0.2.29 → geocif-0.2.31}/geocif/mm.py +0 -0
  50. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/__init__.py +0 -0
  51. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/aa.py +0 -0
  52. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/area.py +0 -0
  53. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/automl.py +0 -0
  54. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/download_esi.py +0 -0
  55. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/enso.py +0 -0
  56. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/eval.py +0 -0
  57. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/gamtest.py +0 -0
  58. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/gee_access.py +0 -0
  59. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/misc.py +0 -0
  60. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/play_xagg.py +0 -0
  61. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/reg.py +0 -0
  62. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/sustain.py +0 -0
  63. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/test_catboost.py +0 -0
  64. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/tmp.py +0 -0
  65. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/tmp2.py +0 -0
  66. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/tmp3.py +0 -0
  67. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/tmp4.py +0 -0
  68. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/tmp5.py +0 -0
  69. {geocif-0.2.29 → geocif-0.2.31}/geocif/playground/wolayita_maize_mask.py +0 -0
  70. {geocif-0.2.29 → geocif-0.2.31}/geocif/risk/__init__.py +0 -0
  71. {geocif-0.2.29 → geocif-0.2.31}/geocif/risk/impact_assessment.py +0 -0
  72. {geocif-0.2.29 → geocif-0.2.31}/geocif/utils.py +0 -0
  73. {geocif-0.2.29 → geocif-0.2.31}/geocif/viz/__init__.py +0 -0
  74. {geocif-0.2.29 → geocif-0.2.31}/geocif/viz/gt.py +0 -0
  75. {geocif-0.2.29 → geocif-0.2.31}/geocif/viz/plot.py +0 -0
  76. {geocif-0.2.29 → geocif-0.2.31}/geocif/viz/tmp.py +0 -0
  77. {geocif-0.2.29 → geocif-0.2.31}/geocif.egg-info/SOURCES.txt +0 -0
  78. {geocif-0.2.29 → geocif-0.2.31}/geocif.egg-info/dependency_links.txt +0 -0
  79. {geocif-0.2.29 → geocif-0.2.31}/geocif.egg-info/not-zip-safe +0 -0
  80. {geocif-0.2.29 → geocif-0.2.31}/geocif.egg-info/top_level.txt +0 -0
  81. {geocif-0.2.29 → geocif-0.2.31}/requirements.txt +0 -0
  82. {geocif-0.2.29 → geocif-0.2.31}/setup.cfg +0 -0
  83. {geocif-0.2.29 → geocif-0.2.31}/tests/test_geocif.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.29
3
+ Version: 0.2.31
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
@@ -294,7 +294,7 @@ class Geocif:
294
294
  X_train,
295
295
  self.y_train,
296
296
  cat_features=self.cat_features,
297
- verbose=True,
297
+ verbose=False,
298
298
  )
299
299
  elif self.model_name in ["ngboost", "oblique", "tabpfn"]:
300
300
  X_train = X_train.drop(
@@ -7,6 +7,7 @@ from collections import Counter
7
7
  from pathlib import Path
8
8
  import matplotlib.pyplot as plt
9
9
  import pandas as pd
10
+ import seaborn as sns
10
11
 
11
12
 
12
13
  def are_all_features_non_eo(features):
@@ -79,6 +80,8 @@ def select_features(
79
80
  # --- multi-method ensemble -------------------------------
80
81
  if method == "multi":
81
82
  counter = Counter()
83
+ selections = {}
84
+
82
85
  models = ["BorutaPy", "mrmr"]
83
86
  # run three selectors and count feature picks
84
87
  for sub_m in models:
@@ -89,6 +92,7 @@ def select_features(
89
92
  threshold_nan=threshold_nan,
90
93
  threshold_unique=threshold_unique
91
94
  )
95
+ selections[sub_m] = set(feats)
92
96
  counter.update(feats)
93
97
 
94
98
  # union of all features
@@ -109,6 +113,21 @@ def select_features(
109
113
  fig.savefig(dir_output / f"feature_selection_frequency_{region}.png", dpi=300)
110
114
  plt.close(fig)
111
115
 
116
+ # build DataFrame: rows=features, cols=methods, 1 if selected
117
+ sel_df = pd.DataFrame(
118
+ {m: [1 if f in selections[m] else 0 for f in combined] for m in models},
119
+ index=combined
120
+ )
121
+
122
+ fig2, ax2 = plt.subplots(figsize=(10, max(6, len(combined) * 0.3)))
123
+ sns.heatmap(sel_df, annot=True, cbar=False, linewidths=0.5, ax=ax2)
124
+ ax2.set_xlabel("Method")
125
+ ax2.set_ylabel("Feature")
126
+ ax2.set_title("Which features each method selected")
127
+ plt.tight_layout()
128
+ fig2.savefig(dir_output / f"feature_selection/feature_selection_methods_{region}.png", dpi=300)
129
+ plt.close(fig2)
130
+
112
131
  return None, X_out, combined
113
132
 
114
133
  # define forest for methods that need it
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.29
3
+ Version: 0.2.31
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.2.29",
53
+ version="0.2.31",
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