python – 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?

前端之家收集整理的这篇文章主要介绍了python – 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我尝试了这个,但无法让它适用于我的数据:
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').

我做了上面的格式来获得与矩阵匹配的形状

如果发布DataFrame_2会有所帮助,请在下方发表评论,我会添加它.

最佳答案
您可以使用插补填充y中的空值.在scikit-learn中,使用以下代码片段完成此操作:

from sklearn.preprocessing import Imputer
imputer = Imputer()
y_imputed = imputer.fit_transform(y)

否则,您可能希望使用74列的子集作为预测变量来构建模型,也许您的某些列包含较少的空值?

猜你在找的Python相关文章