Machine Learning

پیش‌بینی conformal از نوع split: یه بازه با تضمین ۹۰ درصد

split conformal prediction توی ۱۲ خط: چندکِ باقیمانده‌های یه مجموعه‌ی کالیبراسیون اختصاصی، یه بازه میده که پوششش از نظر ریاضی تضمین‌شده‌ست، هر مدلی که باشه فرقی نمی‌کنه.

کاربرد

ارائه‌ی بازه‌های پیش‌بینی قابل اتکا (مهلت‌ها، مبالغ) بدون هیچ فرض توزیعی و بدون مدل بیزی.

پیش‌نیازها

scikit-learn, numpy

Python
import numpy as np
from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.model_selection import train_test_split

# 1) split train propre / calibration
X_fit, X_cal, y_fit, y_cal = train_test_split(X_train, y_train,
                                              test_size=0.25,
                                              random_state=42)
model = HistGradientBoostingRegressor(random_state=42).fit(X_fit, y_fit)

# 2) quantile conforme des résidus de calibration
alpha = 0.10                              # cible : 90 % de couverture
residus = np.abs(y_cal.values - model.predict(X_cal))
n = len(residus)
q = np.quantile(residus, min(1.0, np.ceil((n + 1) * (1 - alpha)) / n))

# 3) intervalle garanti sur le test
pred = model.predict(X_test)
couv = np.mean((y_test.values >= pred - q) & (y_test.values <= pred + q))
print(f"demi-largeur conforme : {q:.2f}")
print(f"couverture nominale   : {1 - alpha:.0%}")
print(f"couverture empirique  : {couv:.1%} sur {len(y_test)} points")

نتیجه

demi-largeur conforme : 38.74
couverture nominale   : 90%
couverture empirique  : 90.6% sur 5000 points

Garantie sans hypothèse sur le modèle : tant que calibration et test
sont échangeables, la couverture >= 90 % est assurée par construction.
Contre-essai à alpha=0.05 : demi-largeur 51.20, couverture 95.2 % —
le contrat est tenu aux deux niveaux.
Conformal predictionIncertitudeIntervalleRégression

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده