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



我正在运行一个简单的线性回归来预测特定数据集的价格。我不仅想计算均方误差等指标,还希望能够计算哪些测试实例在实际价格的 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)

要获取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)

我不确定 sklearn 是否提供内置功能,但您可以按如下方式自行完成:

abs(y_test - y_pred)/y_test * 100

对所有y_pred执行此操作,它将为您提供预测值与实际值的百分比变化。

例如,如果实际值是 200,而您的预测是 210,那么上面的代码将执行以下操作:

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

最新更新