如何解决ValueError:输入包含NaN,无穷大或对于dtype来说太大的值(' float64')

时间:2017-10-17 21:40:42

标签: python neural-network

所以我有这段代码:

    ####----Data----####
quest=pd.read_csv("inputFile.csv", names=["A1","A2",..."A200","Sim"])
print(quest.head())
    ####----Set up Data and Label----####
X=quest.drop('Sim',axis=1)
y=quest['Sim']
    ####----Train Test Split----####
X_train, X_test, y_train, y_test = train_test_split(X, y)
np.isfinite(X_train).any(), np.isfinite(y_train).any(),np.isfinite(X_test).any()
np.isnan(X_train).any(), np.isnan(y_train).any(), np.isnan(X_test).any()
    ####----Data Pre-Processing----####
scaler=StandardScaler()
 # Fit only to the training data
X_scaled=scaler.fit(X_train)
 # Now apply the transformations to the data:
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
    ####----Training the Model----####
mlp=MLPClassifier(hidden_layer_sizes=(13,13,13), max_iter=500)
mlp.fit(X_train,y_train)
print(mlp)
    ####----Predictions and Evaluation----####
predictions=mlp.predict(X_test)

print(confusion_matrix(y_test,predictions))
print(classification_report(y_test,predictions))

但是我收到了这个错误:

追踪(最近一次通话):   文件" E:\ thesis \ sk-ANN.py",第67行,

X_scaled=scaler.fit(X_train)...
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

我的数据集具有指数形式的值,如下所示:

2.15E-06    -0.000556462    0.000197385 -0.000919   -0.000578077....

同样的错误发生在 mlp.fit(X_train,y_train) 预测= mlp.predict(X_test) < /强> 有人请帮我解决这个问题

1 个答案:

答案 0 :(得分:3)

我猜输入数据中必须有nan个值,所以在缩放值之前将所有nan设置为avg。如果是列或设置为零,请参阅this