Ana içeriğe geç

Kalibrasyon ve LR çıktısı

Şu durumda kullanın: doğrulayıcınız ham puanlar (mesafeler, kesirler, olasılıklar) üretiyorsa ve bunların adli rapora geçmeden önce kalibre edilmiş log-olabilirlik oranlarına dönüştürülmesi gerekiyorsa. Şu durumda kullanmayın: puanlayıcınız zaten iyi kalibre edilmiş bir LR üretiyorsa — doğrudan değerlendirme adımına geçin. Beklenen sonuç: predict_proba / log_lr çıktıları etiketli bir geliştirme kümesine karşı olasılıksal olarak kalibre edilmiş bir puanlayıcı sarmalayıcısı.

Bir doğrulayıcıdan elde edilen ham puanlar nadiren olduğu gibi güvenilir olasılıklardır. Bu sayfa, iki standart sonradan kalibrasyon yöntemini ve kalibre edilmiş bir puanı mahkemeye hazır bir LR ifadesine dönüştüren delil zinciri meta verilerini ele almaktadır.

Doğrulama sistemleri ham puanlar üretir. Adli raporlama, mahkemelerin anladığı kanıtsal semantik için kalibre edilmiş posteriorların olabilirlik oranlarına (likelihood ratio) dönüştürülmesini bekler. tamga.forensic her iki adımı da sağlar.

İş akışı

flowchart LR
  S["ham puan<br>(GI, Delta, SVM, ...)"] --> C["CalibratedScorer<br>fit on (cal_scores, cal_labels)"]
  C --> P["kalibre edilmiş p(H1|E)"]
  P --> L["log<sub>10</sub>(LR)"]

  style C fill:#FBF3DE,stroke:#C9A34A
  style L fill:#FBF3DE,stroke:#C9A34A

Kalibrasyon katı, test katından ayrı olmalıdır. Kalibratörü test kümesi üzerinde aşırı uydurmak, iyimser C_llr ve ECE değerleri üretir.

CalibratedScorer

Şu durumda kullanın: herhangi bir puanlayıcıyı (GeneralImpostors, Unmasking, özel bir Delta sınıflandırıcısı) tek bir çağrıda kalibre edilmiş olasılıklar ve log-LR üretecek şekilde sarmak istiyorsanız. Şu durumda kullanmayın: üst akış puanlayıcınız zaten kalibre edilmiş çıktı üretiyorsa. Beklenen sonuç: score(q, k) ham değer döndürür; predict_proba(q, k) kalibre edilmiş olasılık döndürür; log_lr(q, k) kanıtsal niceliği döndürür.

1-D monoton kalibratörü sarar — Platt (lojistik) veya isotonic.

from tamga.forensic import CalibratedScorer

scorer = CalibratedScorer(method="platt").fit(calibration_scores, calibration_labels)
probs   = scorer.predict_proba(test_scores)
log_lrs = scorer.predict_log_lr(test_scores, base=10.0)

Yöntem seçimi

Yöntem Ne zaman kullanılır
"platt" Küçük kalibrasyon kümeleri (sınıf başına < 100). Parametrik; sigmoid eşleme varsayar. Sağlamdır.
"isotonic" Daha büyük kalibrasyon kümeleri (sınıf başına ≥ 100). Parametrik olmayan; esnek.

Her ikisi de monotondur — girdilerin sıra düzeni korunur, dolayısıyla AUC değişmez.

Platt kalibrasyonu

Şu durumda kullanın: puanlayıcınızın karar sınırı log-odds cinsinden yaklaşık doğrusal bir yapıdaysa — lojistik regresyon benzeri bir şekil. İzotonikten daha az parametre gerektirir; daha az etiketli deneme yeterlidir. Şu durumda kullanmayın: puan-olasılık ilişkiniz monoton değilse veya keskin kıvrımlar içeriyorsa — Platt'ın sigmoidi yetersiz kalır. Beklenen sonuç: skaler parametreli sigmoid uyumu; predict_proba, 1 / (1 + exp(a*score + b)) aracılığıyla kalibre edilmiş olasılıklar üretir.

Izotonik kalibrasyon

Şu durumda kullanın: puanlayıcınızın karar sınırı doğrusal değilse ve parametrik olmayan bir eğri uydurmak için yeterli etiketli denemeniz varsa (≥500). Şu durumda kullanmayın: geliştirme kümeniz küçükse — izotonik kalibrasyon az nokta ile aşırı uyum sağlar. Beklenen sonuç: parçalı sabit kalibrasyon işlevi; predict_proba monoton artan adım fonksiyonu üretir.

Log-LR dönüşümü

Düzleştirilmiş önsel olasılıklar altında ($p(H_1) = p(H_0) = 0{,}5$), log-LR kalibre edilmiş posteriorun logit değeridir:

$$ \log_{10}(\text{LR}) = \log_{10}\left(\frac{p(H_1 \mid E)}{1 - p(H_1 \mid E)}\right) $$

from tamga.forensic import log_lr_from_probs, log_lr_from_probs_with_priors

log_lrs = log_lr_from_probs(probs)                                # düz önsel olasılıklar
log_lrs = log_lr_from_probs_with_priors(probs, prior_target=0.3)  # düz olmayan

Kalibrasyon kümesi dengeli değilse log_lr_from_probs_with_priors kullanın; bu işlev bildirilen LR'yi önsel olasılık etkisinden arındırır.

Sözel ölçek

Log-LR büyüklüklerini altı bantlı Nordgaard et al. (2012) / ENFSI (2015) sözel ölçeği (verbal scale) ile birlikte raporlayın:

log₁₀(LR) Sözel destek
0 – 1 zayıf
1 – 2 ılımlı
2 – 3 ılımlı güçlü
3 – 4 güçlü
4 – 5 çok güçlü
> 5 son derece güçlü

build_forensic_report şablonu, bu ölçeği her yöntemin LR değerinin yanında otomatik olarak oluşturur. Bkz. Raporlama.

Referans

CalibratedScorer

Fit a monotone calibrator mapping raw scores to calibrated posteriors.

Parameters:

Name Type Description Default
method ('platt', 'isotonic')
  • platt: one-dimensional LogisticRegression (Platt scaling). Parametric; assumes the score-to-probability mapping is sigmoidal. Robust on small calibration sets.
  • isotonic: IsotonicRegression. Non-parametric, monotone. More flexible but requires more calibration data (rule of thumb: >= 100 trials per class).
"platt"

Attributes:

Name Type Description
method str
fitted bool

predict_proba

predict_proba(scores: ndarray) -> np.ndarray

Return calibrated p(H1 | score) for each input score.

predict_log_lr

predict_log_lr(scores: ndarray, *, base: float = 10.0) -> np.ndarray

Calibrated posteriors → log-LR (flat-prior). Thin wrapper around log_lr_from_probs.

tamga.forensic.lr.log_lr_from_probs

log_lr_from_probs(probs: ndarray, *, eps: float = 1e-12, base: float = 10.0) -> np.ndarray

Convert calibrated posteriors p(H1 | E) to log-likelihood ratios, flat-prior case.

Under flat priors (p(H1) = p(H0) = 0.5), log-LR = log(p / (1 - p)) (the logit). When calibrated on a balanced set, this is the forensically-appropriate evidential output.

Parameters:

Name Type Description Default
probs ndarray

Calibrated probabilities of the target hypothesis, in [0, 1].

required
eps float

Clip bound to avoid log(0). Defaults to 1e-12.

1e-12
base float

Logarithm base. Defaults to 10 (the standard forensic convention).

10.0

Returns:

Type Description
ndarray

log_base(LR) for each trial.

tamga.forensic.lr.log_lr_from_probs_with_priors

log_lr_from_probs_with_priors(probs: ndarray, *, prior_target: float, eps: float = 1e-12, base: float = 10.0) -> np.ndarray

Convert p(H1 | E) to log-LR with a user-specified prior.

posterior-odds = LR * prior-odds, so LR = posterior-odds / prior-odds.

Parameters:

Name Type Description Default
probs ndarray

Calibrated probabilities of the target hypothesis, in [0, 1].

required
prior_target float

Prior probability of H1 used when training the calibrator, in (0, 1).

required