使用预测区间对预测值进行分类

Classifying predicted values using a prediction interval

我是运行一个简单的线性回归来预测特定数据集的价格。我不仅想计算均方误差等指标,而且还想计算哪些测试实例在实际价格的 10% 的预测区间内(即实际价格在预测价格 +/- 10% 的范围内) .但我不确定最好的方法是什么,或者现有的软件包是否可以提供帮助。我目前正在为我的 X 和 Y 训练数据使用 numpy 数组。


# Load in train test split data
X_train, X_test, y_train, y_test = prepare_data()

# fit model 
lm = LinearRegression()
lm.fit(X_train, y_train)

# Compute predictions
y_pred = lm.predict(X_test)


我不确定 sklearn 是否内置了这个,但你可以自己做,如下所示:

abs(y_test - y_pred)/y_test * 100

对所有 y_pred 执行此操作,它会给出预测值与实际值的百分比变化。

例如,如果实际值为 200 而您的预测值为 210,那么上面的代码将做的是:

>>> abs(200-210)/200 *100
>>> 5 %

要获取y_test的所有值,可以使用np.select 因此,在您的情况下,条件是 y_test 的值在 y_pred

的 10% 以内
condition = [abs(y_pred - y_test)/y_test < 0.1]
choice = [y_test]
result = np.select(condition, choice)