尝试拟合回归模型时出现ValueError

时间:2019-06-13 07:50:52

标签: python python-3.x machine-learning linear-regression

我有1000个观测值的数据集,其中x是独立的,而y是依赖的。 当我尝试拟合简单的回归模型时,出现以下错误:

  

ValueError:输入包含NaN,无穷大或值对于   dtype('float64')

数据集中存在NaN值或缺少数据 而且我还尝试了使用错误数据丢失的平均策略(如果有的话)。

import numpy as np 
import matplotlib.pyplot as plt
import pandas as pd


dataset=pd.read_csv('dataset1.csv')
x = dataset.iloc[:,:-1].values
y = dataset.iloc[: , 1].values


from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values='NaN' , strategy = 'mean' , axis=0 )
imputer = imputer.fit(x[:, 0:1])
x[:,0:1] = imputer.transform(x[:,0:1])
imputer = imputer.fit(y)
y = imputer.transform(y)



from sklearn.cross_validation import train_test_split
x_train , x_test , y_train , y_test = train_test_split(x,y , 
test_size=0.3 , random_state=0)


from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x_train , y_train)

错误消息:-

  

ValueError:输入包含NaN,无穷大或值对于   dtype('float64')。

数据集  :-https://drive.google.com/file/d/1Ryl5my2RG2LpyByhQ_qqgVb7ztZeGtie/view?usp=sharing

1 个答案:

答案 0 :(得分:2)

数据集中缺少标签(链接文件中y列的第215行)。要摆脱它,您可以在加载数据集后立即添加以下行:

if (retry)
{..}

在您的代码中,您当前正在尝试估算缺少的标签。这没有多大意义,因为从丢失的标签中无法学到任何东西,并且相应的x值也看起来可疑。 但是,以防万一您想知道,插补不起作用,因为您需要首先重塑数组:

dataset.dropna(subset=["y"], inplace=True)  # drop any columns with missing labels in place