1

I am trying to produce prediction intervals with CatBoostRegressor using Quantile Regression. As far as i know prediction intervals can't be negative. However, following code produces (some) negative intervals:

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)

6

How is this possible?

royalts94
  • 11
  • 1

0 Answers0