包含Nans的线性回归

时间:2017-05-04 08:19:52

标签: python scikit-learn linear-regression

我正在制作一个可以预测其他人意见的模型。为此,我将使用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,所以不会破坏答案。

我目前的问题是:

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

1 个答案:

答案 0 :(得分:1)

将nan设置为0并训练线性回归以查找每个变量的系数,具体取决于用例。

为什么?

你正在训练模型并告诉它许多行 - 变量a1,a2等的重要性(当值为nan并设置为0时)。

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

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