Python 为什么CatBoost回归器输出负预测间隔?

Python 为什么CatBoost回归器输出负预测间隔?,python,catboost,catboostregressor,Python,Catboost,Catboostregressor,我正在尝试使用分位数回归用CatBoostRegressor生成预测区间。据我所知,预测间隔不能是负的。但是,以下代码会产生(某些)负间隔: data = sklearn.datasets.load_boston() X = pd.DataFrame(data['data']) y = pd.Series(data['target']) X_train, X_test, y_train, y_test = train_test_split(X,y) cbr_upper = CatBoostRe

我正在尝试使用分位数回归用CatBoostRegressor生成预测区间。据我所知,预测间隔不能是负的。但是,以下代码会产生(某些)负间隔:

data = sklearn.datasets.load_boston()
X = pd.DataFrame(data['data'])
y = pd.Series(data['target'])
X_train, X_test, y_train, y_test = train_test_split(X,y)

cbr_upper = CatBoostRegressor(loss_function='Quantile:alpha=0.95')
cbr_lower = CatBoostRegressor(loss_function='Quantile:alpha=0.05')

cbr_upper.fit(X_train, y_train, verbose=500)
cbr_lower.fit(X_train, y_train, verbose=500)

y_upper = cbr_upper.predict(X_test)
y_lower = cbr_lower.predict(X_test)

interval_list = y_upper - y_lower

sum(interval_list < 0)
data=sklearn.dataset.load_boston()
X=pd.DataFrame(数据['data'])
y=pd.系列(数据['target'])
X_序列,X_测试,y_序列,y_测试=序列测试分割(X,y)
cbr\u上限=CatBoostRegressor(损失函数=分位数:α=0.95')
cbr\u lower=CATBoostregrestor(损失函数='分位数:α=0.05')
cbr_上部配合(X_系列,y_系列,详细=500)
cbr_下部配合(X_系列,y_系列,详细=500)
y_上限=cbr_上限预测(X_检验)
y_lower=cbr_lower.预测(X_测试)
间隔列表=y上-y下
总和(间隔列表<0)
六,

这怎么可能