Python 含NaN的线性回归
我正在研究一个模型,可以根据别人的意见预测一个数字。为此,我将使用Sklearn的线性回归 例如,我有5个代理,我从他们那里收集他们在每次迭代中最后一次更改的数据,如果他们还没有插入,则数据包含Python 含NaN的线性回归,python,scikit-learn,linear-regression,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
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
。我将它们替换为an=0
,这不会破坏答案,因为线性回归的公式是:result=a1*w1+a2*w2+…+一个*wn+c
我目前的问题是:
我的解决方案是否会对贴合度产生影响?有没有更好的办法解决我的问题?我是否应该仅使用完整数据学习模型,而不是将其用于当前解决方案?将nan设置为0,并训练线性回归以找到每个变量的系数,这取决于用例 为什么? 您基本上是在训练模型,并告诉它,对于许多行,变量a1、a2等的重要性(当值为nan并设置为0时) 如果NAN是由于数据尚未填充,则将其设置为0并训练模型是错误的。最好在输入所有数据后训练模型(至少对于输入了一些数据的所有代理),这可以用于以后预测新代理。否则,如果许多代理尚未输入其数据,则您的系数将过度适合0(NAN)
基于最终目标(这是一个连续变量),线性回归是一个很好的方法 它将试图找到a1=0的系数,使损失函数最小化。当a1为空时,您将不使用该系数,但当a1为空时,您将使用它。所以它肯定会影响你的结果。也就是说,你应该问这个问题。