【问题标题】:Capping linear regression prediction values using scikit使用 scikit 限制线性回归预测值
【发布时间】:2012-03-17 22:01:49
【问题描述】:

我正在使用一个数据集训练线性回归模型,该数据集在区间 [0,10] 中具有实值标签。我在测试集上的预测值有一些超过 10 的预测值。有没有办法将预测值限制为 10。

我正在考虑进行条件检查,如果预测超过 10,我将其明确设置为 10。

有没有更好的办法?

【问题讨论】:

  • 这个问题很模糊。除非你能更具体一点,否则我看不出有人能给你一个“更好的方法”。
  • 更好我的意思是比写一个显式的 if (value > 10) value = 10 类语句更好,该语句针对回归模型发出的每个值执行。这似乎是一个相当常见的场景,所以我希望有一个标准的方法来做到这一点。这是否使它更清楚?我很乐意编辑使问题变得模糊的任何内容
  • 如果我理解正确的话,检查线性函数的范围并停止计算相应域之外的值会更好吗?
  • 我觉得这个问题够精确

标签: python linear-regression scikits


【解决方案1】:

如果y是回归对象的predict方法的输出,那么你可以将Numpy的minimum封顶为10:

y = np.minimum(y, 10.)

要将其上限设为零,请执行以下操作

y = np.maximum(np.minimum(y, 10.), 0.)

或者,更短:

y = np.clip(y, 0., 10.)

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2022-11-19
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2016-08-26
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多