【发布时间】:2019-04-11 16:33:52
【问题描述】:
我的代码是从 kaggle 分析 PUBG 数据集并制作模型。我使用 sklearn 中的 StandardScaler 提取了所有特征并对其进行了标准化。
//Snippet
X=standardized_data
y=training_features_output
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.30,random_state=42)
print(standardized_data.shape,training_features_output.shape)
[输出]: (4446966, 16) (4446966,)
print(np.all(np.isinf(standardized_data)))
print(np.all(np.isinf(training_features_output)))
print(np.all(np.isnan(standardized_data)))
print(np.all(np.isnan(training_features_output)))
[输出]:
假
假的
假的
错误
print(X.dtype)
print(y.dtype)
[输出]:
dtype('float64')
dtype('float64')
model=LinearRegression()
model.fit(X_train,y_train)
y_train_pred=model.predict(X_train)
y_test_pred=model.predict(X_test)
print('Train r2_accuracy:',r2_score(y_train,y_train_pred))
print('Test r2_accuracy:',r2_score(y_test,y_test_pred))
ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 而言太大的值。
error photo
Full Code
从上面的输出我们可以看出,它们在数据集中没有 nan 和 infinite 值,并且数据在 float64 中。但是我是如何得到这个错误的以及如何解决它?
在 stackoverflow 上尝试了其他关于此的查询,所有这些查询都遇到了 nan 或一些问题,我不知道这段代码在哪里搞砸了。
【问题讨论】:
-
np.all(np.isinf(x)) -
我也有同样的问题。我已经尝试使用导致 False 的 np.any(np.isinf(a)),但仍然有问题
标签: python pandas machine-learning scikit-learn valueerror