geocif 0.2.68__tar.gz → 0.2.69__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.
- {geocif-0.2.68/geocif.egg-info → geocif-0.2.69}/PKG-INFO +1 -1
- {geocif-0.2.68 → geocif-0.2.69}/geocif/geocif.py +2 -1
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/feature_selection.py +24 -5
- {geocif-0.2.68 → geocif-0.2.69/geocif.egg-info}/PKG-INFO +1 -1
- {geocif-0.2.68 → geocif-0.2.69}/setup.py +1 -1
- {geocif-0.2.68 → geocif-0.2.69}/LICENSE +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/MANIFEST.in +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/README.md +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/agmet/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/agmet/geoagmet.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/agmet/plot.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/agmet/utils.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/analysis.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/constants.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/features.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/geo.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/geocif.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/metadata.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/backup/models.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/cei/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/cei/definitions.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/cei/indices.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/experiments.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/geocif_runner.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_algeria.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_angola.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_madagascar.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_malawi.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_mozambique.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_south_africa.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_zambia.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/indices_runner_zimbabwe.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/logger.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/correlations.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/embedding.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/feature_engineering.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/outliers.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/outlook.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/output.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/spatial_autocorrelation.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/stages.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/stats.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/trainers.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/trend.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/ml/xai.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/mm.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/aa.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/aaaa.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/area.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/automl.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/download_esi.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/enso.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/eval.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/gamtest.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/gee_access.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/misc.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/play_xagg.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/reg.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/sustain.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/test_catboost.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/tmp.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/tmp2.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/tmp3.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/tmp4.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/tmp5.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/wolayita.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/wolayita_maize_mask.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/wolayita_v2.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/playground/wolayita_v3.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/risk/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/risk/impact_assessment.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/utils.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/viz/__init__.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/viz/gt.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/viz/plot.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/viz/tmp.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif/viz/viz_ml.py +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif.egg-info/SOURCES.txt +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif.egg-info/dependency_links.txt +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif.egg-info/not-zip-safe +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/geocif.egg-info/top_level.txt +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/requirements.txt +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/setup.cfg +0 -0
- {geocif-0.2.68 → geocif-0.2.69}/tests/test_geocif.py +0 -0
@@ -836,12 +836,13 @@ class Geocif:
|
|
836
836
|
|
837
837
|
""" Feature selection and then Train """
|
838
838
|
# Filter dataframe based on region and self.feature_names
|
839
|
+
breakpoint()
|
839
840
|
df_region_train = self.df_train[mask_train]
|
840
841
|
df_region_train = df_region_train[self.fixed_columns + common_columns]
|
841
842
|
df_region_train.reset_index(drop=True, inplace=True)
|
842
843
|
df_region_train = df_region_train.dropna(subset=[self.target_column])
|
843
844
|
|
844
|
-
self.X_train = df_region_train[self.feature_names]
|
845
|
+
self.X_train = df_region_train[self.feature_names + ["Region"]]
|
845
846
|
|
846
847
|
# Drop any columns with NaNs except the lag yield columns
|
847
848
|
lag_prefix = "t -"
|
@@ -65,7 +65,6 @@ def select_features(
|
|
65
65
|
X_filtered : pd.DataFrame of selected features
|
66
66
|
selected_features : list[str]
|
67
67
|
"""
|
68
|
-
|
69
68
|
# copy original for multi-mode recursion
|
70
69
|
X_clean = X.copy()
|
71
70
|
|
@@ -250,10 +249,30 @@ def select_features(
|
|
250
249
|
|
251
250
|
elif method == "BorutaPy":
|
252
251
|
from boruta import BorutaPy
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
252
|
+
from collections import Counter
|
253
|
+
import itertools as it
|
254
|
+
|
255
|
+
region_selected = {} # {region: [features …]}
|
256
|
+
for region in tqdm(X_clean["Region"].unique(), desc="BorutaPy", leave=False):
|
257
|
+
idx = X_clean["Region"] == region
|
258
|
+
X_region = X_clean.loc[idx].drop(columns=["Region"])
|
259
|
+
y_region = y.loc[idx] if hasattr(y, "loc") else y[idx]
|
260
|
+
|
261
|
+
sel = BorutaPy(
|
262
|
+
estimator=forest,
|
263
|
+
n_estimators="auto",
|
264
|
+
random_state=42,
|
265
|
+
verbose=0
|
266
|
+
)
|
267
|
+
sel.fit(X_region.values, y_region.values)
|
268
|
+
|
269
|
+
region_selected[region] = (
|
270
|
+
X_region.columns[sel.support_ | sel.support_weak_].tolist()
|
271
|
+
)
|
272
|
+
|
273
|
+
# ─── 3. keep features chosen in ≥ 2 regions ------------------------------
|
274
|
+
counts = Counter(it.chain.from_iterable(region_selected.values()))
|
275
|
+
selected = [feat for feat, n in counts.items() if n >= 2]
|
257
276
|
|
258
277
|
elif method == "Leshy":
|
259
278
|
import arfs.feature_selection.allrelevant as arfsgroot
|
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
|
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
|
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
|