我尝试了这个,但无法让它适用于我的数据:
Use Scikit Learn to do linear regression on a time series pandas data frame
我的数据包含2个DataFrame. 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').
我做了上面的格式来获得与矩阵匹配的形状
最佳答案
您可以使用插补填充y中的空值.在scikit-learn中,使用以下代码片段完成此操作:
from sklearn.preprocessing import Imputer
imputer = Imputer()
y_imputed = imputer.fit_transform(y)
否则,您可能希望使用74列的子集作为预测变量来构建模型,也许您的某些列包含较少的空值?