我正在制作一个可以预测其他人意见的模型。为此,我将使用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
,所以不会破坏答案。
我目前的问题是:
我的解决方案是否会以某种方式影响合身?我的问题有更好的解决方案吗?我应该只使用完整数据来学习我的模型,而不是使用当前的解决方案吗?
答案 0 :(得分:1)
将nan设置为0并训练线性回归以查找每个变量的系数,具体取决于用例。
为什么?
你正在训练模型并告诉它许多行 - 变量a1,a2等的重要性(当值为nan并设置为0时)。
如果NAN是因为尚未填写数据,那么将它们设置为0并训练模型是错误的。输入所有数据后最好训练模型(至少输入一些数据的所有代理人)这可以用于预测新代理。否则,如果许多代理尚未输入数据,则系数将超过0(NAN)。
基于最终目标(这是一个连续变量),线性回归是一种很好的方法。