Scopri come la previsione conforme fornisce un'incertezza indipendente dalla distribuzione per l'IA. Implementa insiemi di previsione con Ultralytics per garantire risultati affidabili del modello.
La previsione conforme è un quadro statistico nell'ambito dell'apprendimento automatico (ML) che fornisce misure di incertezza indipendenti dalla distribuzione per le previsioni dei modelli. Anziché fornire una previsione a punto singolo — come ad esempio un'etichetta di classe specifica — un predittore conforme fornisce un insieme di previsioni o un intervallo che contiene il valore reale con una probabilità specificata dall'utente (ad es., 90% o 95%). Questo quadro si adatta a qualsiasi modello di intelligenza artificiale (AI) per fornire garanzie statistiche formali senza richiedere modifiche all'architettura del modello. Per un elenco esaustivo di strumenti e ricerche aggiornati, è possibile esplorare il repository Awesome Conformal Prediction.
Il meccanismo di base consiste nel valutare quanto una nuova previsione sia anomala rispetto agli esempi passati utilizzando un punteggio di non conformità.
È possibile approfondire le dimostrazioni matematiche di questo approccio nel tutorial " A Gentle Introduction to Conformal Prediction " oppure approfondire gli approcci di previsione delle serie temporali per gestire le incertezze temporali.
È fondamentale distinguere questo quadro di riferimento dalle metriche standard utilizzate durante la verifica dei modelli:
La previsione conforme è indispensabile in settori ad alto rischio, dove è fondamentale conoscere i punti deboli del modello.
Librerie come MAPIE (Model Agnostic Prediction Interval Estimator) offrono strumenti integrati per Python, e nelle attività di regressione si ricorre spesso alla regressione quantilica conforme. È inoltre possibile implementare una logica di previsione conforme di base utilizzando le probabilità di modelli avanzati come Ultralytics . L'esempio seguente crea un insieme di previsioni utilizzando le probabilità di classificazione di YOLO26, imitando la logica di includere le classi principali fino al raggiungimento di una soglia cumulativa.
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}")
Lo sviluppo di sistemi affidabili richiede pratiche di gestione dei dati solide per evitare che la deriva dei dati comprometta la calibrazione. Strumenti come la Ultralytics semplificano il processo di raccolta di nuovi set di dati di classificazione, di riaddestramento dei modelli e di gestione sicura della loro implementazione. Per saperne di più sulla cura di dati bilanciati, consulta la nostra guida su come comprendere la distorsione dei set di dati, oppure track ultimi progressi presentati alla conferenza annuale COPA.

Inizia il tuo viaggio con il futuro del machine learning