D2 pinball score¶
は決定係数の一般化
ここでは切片のみのモデルの最適解(例:二乗誤差ならの平均値、絶対誤差ならの中央値、pinball lossならの指定されたquantile)
このに
を代入したものが pinball score
(参考:3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 1.4.1 documentation)
interval score¶
(1 - \alpha)\times 100\text{%}予測区間を quantileで構築したとする。
interval scoreは真の値をとして
となる。(スコアが小さいほうが良いモデルを意味する)
import numpy as np
def interval_score(l, u, x, alpha):
return (u - l) + (2 / alpha) * (l - x) * (x < l) + (2 / alpha) * (x - u) * (x > u)
alpha = 0.05
true_values = 5
# 予測1
lower, upper = (1, 10)
s1 = interval_score(lower, upper, true_values, alpha)
# 予測2
lower, upper = (4, 6)
s2 = interval_score(lower, upper, true_values, alpha)
print(f"{s1=}, {s2=}")s1=9.0, s2=2.0