【问题标题】:Linear regression containing Nans包含 Nans 的线性回归
【发布时间】:2017-10-02 07:33:12
【问题描述】:

我正在研究一个模型,该模型将根据其他人的意见预测数字。为此,我将使用 Sklearn 的线性回归。

例如,我有 5 个来自女巫的代理,我在每次迭代中收集他们最后一次更改的数据,如果他们还没有插入,数据包含 Nan,直到他们的第一次更改。数据看起来像这样:

   a1   a2   a3   a4   a5   target
1  nan  nan  nan  nan  3     4.5
2  4    nan  nan  nan  3     4.5
3  4    5    nan  nan  3     4.5
4  4    5    5    nan  3     4.5
5  4    5    5    4    3     4.5
6  5    5    5    4    3     4.5

因此,在每次迭代/更改中,我都想预测结束编号。正如我们所知,线性回归不允许您在数据中包含 an = Nan's。我将它们替换为an = 0,女巫不会破坏答案,因为线性回归的公式是:result = a1*w1 + a2*w2 + ... + an*wn + c

我目前的问题:

我的解决方案会以某种方式影响合身吗?我的问题有更好的解决方案吗?我应该只使用完整数据来学习我的模型,而不是在当前解决方案中使用它吗?

【问题讨论】:

  • 它将尝试为 a1=0 找到一个最小化损失函数的系数。当 a1 为空时,您不会使用该系数,但如果不是,您将使用它。所以它肯定会影响你的结果。也就是说,你应该在Cross Validated 上问这个问题。

标签: python scikit-learn linear-regression


【解决方案1】:

根据用例,将 nan 设置为 0 并训练线性回归以查找每个变量的系数都很好。

为什么?

您基本上是在训练模型并告诉它对于许多行 - 变量 a1 、 a2 等的重要性(当值为 nan 并设置为 0 时)。

如果 NAN 是因为尚未填写数据,那么将它们设置为 0 并训练您的模型是错误的。最好在输入所有数据后训练您的模型(至少对于输入了一些数据的所有代理)这可以稍后用于预测新代理。否则,如果许多代理尚未输入他们的数据,您的系数将过度拟合 0(NAN)。

基于最终目标(这是一个连续变量),线性回归是一个很好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2022-01-01
    • 2010-12-20
    • 1970-01-01
    • 2022-01-11
    • 2021-03-17
    • 2015-06-26
    相关资源
    最近更新 更多