我试过这个,但没能让它为我的数据工作: Use Scikit Learn to do linear regression on a time series pandas data frame
我的数据由两个数据帧组成。DataFrame_1.shape = (40,5000)
和DataFrame_2.shape = (40,74)
。我试图做一些线性回归,但是DataFrame_2
包含NaN
缺少的数据值。当我DataFrame_2.dropna(how="any")
时,形状会下降到(2,74)
。
sklearn中是否有能够处理NaN
值的线性回归算法?
我是在sklearn.datasets
中的load_boston
之后建模的,其中X,y = boston.data, boston.target = (506,13),(506,)
这是我的简化代码:
X = DataFrame_1
for col in DataFrame_2.columns:
y = DataFrame_2[col]
model = LinearRegression()
model.fit(X,y)
#ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
我做了上面的格式,使形状与矩阵相匹配
如果发布DataFrame_2
会有帮助,请在下面发表评论,我将添加它。
如果变量是数据帧,则可以使用
fillna
。在这里,我用该列的平均值替换了丢失的数据。您可以用插补来填写
y
中的空值。在scikit-learn
中,使用以下代码段完成此操作:否则,您可能希望使用74列的子集作为预测值来构建模型,也许您的某些列包含的空值更少?
相关问题 更多 >
编程相关推荐