Découvrez comment la prédiction conforme permet d'obtenir une incertitude indépendante de la distribution pour l'IA. Mettez en œuvre des ensembles de prédiction avec Ultralytics afin de garantir la fiabilité des résultats du modèle.
La prédiction conforme est un cadre statistique en apprentissage automatique (ML) qui fournit des mesures d'incertitude indépendantes de la distribution pour les prédictions des modèles. Au lieu de produire une prédiction ponctuelle — telle qu'une étiquette de classe spécifique —, un prédicteur conforme génère un ensemble de prédictions ou un intervalle qui contient la valeur réelle avec une probabilité spécifiée par l'utilisateur (par exemple, 90 % ou 95 %). Ce cadre s'applique à n'importe quel modèle d'intelligence artificielle (IA) pour fournir des garanties statistiques formelles sans nécessiter de modifications de l'architecture du modèle. Pour une liste exhaustive des outils et des recherches à jour, vous pouvez explorer le référentiel Awesome Conformal Prediction.
Le mécanisme de base consiste à évaluer dans quelle mesure une nouvelle prédiction s'écarte des exemples passés à l'aide d'un score de non-conformité.
Vous pouvez découvrir les fondements mathématiques de cette approche dans le tutoriel « A Gentle Introduction to Conformal Prediction » ou vous familiariser avec les méthodes de prévision de séries chronologiques permettant de gérer les incertitudes temporelles.
Il est essentiel de distinguer ce cadre des indicateurs standard utilisés lors des tests de modèles:
La prédiction conforme est indispensable dans les domaines à enjeux élevés où il est essentiel de connaître les lacunes du modèle.
Des bibliothèques telles que MAPIE (Model Agnostic Prediction Interval Estimator) fournissent des outils intégrés pour Python, et les tâches de régression font souvent appel à la régression quantile conforme. Vous pouvez également implémenter une logique de prédiction conforme de base en utilisant les probabilités issues de modèles avancés tels que Ultralytics . L'exemple suivant construit un ensemble de prédictions à l'aide des probabilités de classification de YOLO26, en imitant la logique consistant à inclure les classes les plus probables jusqu'à ce qu'un seuil cumulatif soit atteint.
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0
# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5
for idx in sorted_indices:
class_name = results[0].names[idx]
class_prob = probs.data[idx].item()
prediction_set.append((class_name, round(class_prob, 3)))
cumulative_prob += class_prob
# Stop adding to the set once we reach the 95% coverage threshold
if cumulative_prob >= target_coverage:
break
print(f"95% Prediction Set: {prediction_set}")
Le développement de systèmes fiables nécessite des pratiques rigoureuses en matière de données afin d'éviter que la dérive des données ne compromette l'étalonnage. Des outils tels que la Ultralytics simplifient le processus de collecte de nouveaux ensembles de données de classification, de réentraînement des modèles et de gestion sécurisée du déploiement des modèles. Pour en savoir plus sur la gestion d'ensembles de données équilibrés, consultez notre guide sur la compréhension des biais dans les ensembles de données, ou track dernières avancées présentées lors de la conférence annuelle COPA.

Commencez votre parcours avec l'avenir de l'apprentissage automatique