Downloads · 30 days
0
D4rkN3st/model_soutenance_simplon
model_soutenance_simplon is a tabular classification model from D4rkN3st. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for scikit-learn. The card lists the license as mit.
Ce modèle est un classifieur binaire basé sur un Random Forest (scikit-learn) dont l'objectif est de prédire si un animal d'élevage (bovin, ovin, caprin, porcin) présente un risque sanitaire (animal malade ou en conva…
Downloads · 30 days
0
Access
Public
Updated Sep 18, 2026
Repo size
—
Likes
1
Public
Click a slice to open those files.
.md10.7 KB · 88%
From the Hugging Face model README
Ce modèle est un classifieur binaire basé sur un Random Forest (scikit-learn) dont l'objectif est de prédire si un animal d'élevage (bovin, ovin, caprin, porcin) présente un risque sanitaire (animal malade ou en convalescence).
Il constitue le moteur d'inférence d'un système de surveillance d'élevage de précision, qui combine :
Le système produit automatiquement des alertes et des recommandations exploitables par l'éleveur.
| Composant | Valeur |
|---|---|
| Algorithme | RandomForestClassifier (scikit-learn) |
| Nombre d'arbres | 100 |
| Critère de split | Gini impurity |
| random_state | 42 |
| Rééquilibrage de classes | SMOTE (imbalanced-learn) |
| Encodage des variables catégorielles | One-Hot Encoding (drop_first=True) |
| Nombre de features après encodage | 112 |
| Taille du jeu d'entraînement (après SMOTE) | environ 6 000 échantillons équilibrés |
Nom : est_malade (booléen)
df["est_malade"] = df["statut"].isin(["malade", "en convalescence"])
| Valeur | Signification |
|---|---|
| True | Animal malade ou en convalescence |
| False | Animal sain |
Variables numériques :
age_moispoids_kgtemperature_celsiusfrequence_cardiaquequantite_aliment_kgfrequence_alimentationVariables catégorielles (encodées en one-hot) :
especeracesexealiment_typegestation_stadesource_donneeVariables exclues pour éviter la fuite de données :
animal_id, date_entree, date_velage_prevue, symptomes, diagnostic, traitement, alerte_description, statut, alerte_type, ainsi que toutes les colonnes dérivées (*_anormal, *_impossible, anomalie_physiologique, nb_signaux_anormaux, score_completude).
| Méthode | Retour |
|---|---|
predict(X) | True / False |
predict_proba(X) | Probabilité d'appartenance à chaque classe |
La probabilité est exposée à l'utilisateur final sous la forme d'un pourcentage de risque (par exemple : « Risque de maladie : 12 % »).
reindex et remplissage par zéro) peut introduire des désalignements silencieux.| Classe | Precision | Recall | F1-score | Support |
|---|---|---|---|---|
| Sain / Convalescent | 0,57 | 0,64 | 0,60 | 587 |
| Malade | 0,45 | 0,38 | 0,41 | 452 |
| Accuracy globale | 0,53 | 1 039 |
| Stratégie | Accuracy | Recall (malade) | Precision (malade) |
|---|---|---|---|
RandomForest + class_weight=balanced | 0,51 | 0,41 | 0,43 |
| RandomForest + SMOTE | 0,53 | 0,38 | 0,45 |
Remarque importante. Un score d'accuracy de 0,903 apparaît dans certaines cellules du notebook source. Il correspond à une évaluation en resubstitution (test sur les mêmes données que l'entraînement) et ne reflète pas la performance réelle du modèle en production. Seul le score de 0,53 sur jeu de test séparé doit être considéré comme référence.
Le jeu d'entraînement a été construit par agrégation de plusieurs sources hétérogènes :
| Source | Description | Volume |
|---|---|---|
| GoMask AgriTech Livestock Health Records | Données synthétiques, 4 espèces | 10 lignes |
| Kaggle — Animal Disease Prediction Using Symptoms | Données réelles/déclarées, filtrées sur 4 espèces | environ 250 lignes |
| Kaggle — Global Cattle Disease Detection | Bovins uniquement | 5 000 lignes (échantillon) |
| Kaggle — Global Cattle Milk Yield Prediction | Bovins uniquement | fusionné |
| Hugging Face — harxsan/agriculture-livestock-data | Dictionnaire maladie/symptômes | usage de référence |
Après nettoyage et consolidation : 5 192 lignes × 30 colonnes.
"inconnu".animal_id.import joblib
import pandas as pd
model = joblib.load("model_soutenance_simplon.joblib")
for col in ["age_mois", "poids_kg", "temperature_celsius",
"frequence_cardiaque", "quantite_aliment_kg",
"frequence_alimentation"]:
df[col] = df[col].fillna(df[col].median())
X = pd.get_dummies(df, columns=["espece", "race", "sexe",
"aliment_type", "gestation_stade",
"source_donnee"], drop_first=True)
X = X.reindex(columns=model.feature_names_in_, fill_value=0)
prediction = model.predict(X)[0]
probability = model.predict_proba(X)[0][1]
print(f"Animal à risque : {prediction} (probabilité : {probability:.2%})")
scikit-learn >= 1.4imbalanced-learn >= 0.14pandas, numpyrandom_state=42) pour toutes les étapes stochastiques.Compatibilité. Le modèle a été sérialisé avec scikit-learn 1.6.1. Un avertissement de version peut apparaître si vous le chargez avec une version différente. Il est recommandé d'utiliser la même version que celle de l'entraînement.
@misc{d4rkn3st2025modelsoutenance,
author = {D4rkN3st},
title = {Model Soutenance Simplon — Prédiction du Risque Sanitaire Animal},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/D4rkN3st/model_soutenance_simplon}}
}
Pour toute question, remarque ou signalement de bug :