Views
No views yet
RandomForestClassifier (Scikit-Learn).pandas.DataFrame) contenant très exactement ces 18 colonnes, et dans cet ordre strict :1features_attendues = [
2 'B12', 'B12_contrast', 'B12_diss',
3 'B4', 'B4_var',
4 'B8', 'B8_asm', 'B8_contrast', 'B8_diss',
5 'NDBI', 'NDBI_contrast', 'NDBI_diss',
6 'NDVI', 'NDVI_contrast', 'NDVI_diss',
7 'NDWI', 'NDWI_contrast', 'NDWI_diss'
8]rfc_production_v1.joblib : Le modèle prédictif final.scaler_production.joblib : Le StandardScaler (indispensable pour conformer les données avant l'inférence).1import pandas as pd
2import joblib
3from huggingface_hub import hf_hub_download
4
5REPO_ID = "kjd-dktech/forestwatch-tg"
6
7# 1. Télécharger et charger les poids de production depuis Hugging Face
8scaler_path = hf_hub_download(repo_id=REPO_ID, filename="scaler_production.joblib")
9model_path = hf_hub_download(repo_id=REPO_ID, filename="rfc_production_v1.joblib")
10
11scaler = joblib.load(scaler_path)
12model = joblib.load(model_path)
13
14# 2. Préparer vos nouvelles données
15# Le tableau doit contenir exactement les 18 features attendues
16features_attendues = [
17 'B12', 'B12_contrast', 'B12_diss',
18 'B4', 'B4_var',
19 'B8', 'B8_asm', 'B8_contrast', 'B8_diss',
20 'NDBI', 'NDBI_contrast', 'NDBI_diss',
21 'NDVI', 'NDVI_contrast', 'NDVI_diss',
22 'NDWI', 'NDWI_contrast', 'NDWI_diss'
23]
24
25donnees_entree = pd.DataFrame([
26 # Simulation d'un pixel (18 valeurs fictives)
27 [0.10, 1.2, 0.5, 0.06, 0.05, 0.25, 0.15, 0.8, 0.4, -0.2, 0.3, 0.2, 0.6, 0.9, 0.3, -0.4, 0.5, 0.1]
28], columns=features_attendues)
29
30# 3. Appliquer la normalisation
31X_scaled = scaler.transform(donnees_entree)
32
33# 4. Prédire la classe d'occupation du sol
34predictions = model.predict(X_scaled)
35
36print("Classe prédite :", predictions[0])
37# Ex: Sortie 2 (Forêt)huggingface_hub.