python - ValueError:输入包含 NaN、无穷大或对于 dtype ('float64' 来说太大的值),即使 isnan 和 isinf 为 false 且 dtype=float64 时也是如此

标签 python pandas machine-learning scikit-learn valueerror

我的代码是分析来自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)

[Output]: (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)))

[Output]:
False
False
False
False

print(X.dtype)
print(y.dtype)

[Output]:
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: Input contains NaN, infinity or a value too large for dtype('float64').

error photo
Full Code

从上面的输出中我们可以看到,数据集中没有 naninfinite 值,并且数据采用 float64 格式。但我如何收到此错误以及如何解决它?
在 stackoverflow 上尝试了有关此问题的其他查询,所有查询都出现了 nan 或其他困惑的情况,我不知道这段代码在哪里困惑了。

最佳答案

您的检查点不正确,因为您正在使用检查所有数据是否为inf>np.all().

print(np.all(np.isinf(standardized_data)))
...
<小时/>

请使用np.any()

证明:

a = [np.inf, 0, 1]

np.all(np.isinf(a))
#False

np.any(np.isinf(a))
#True

关于python - ValueError:输入包含 NaN、无穷大或对于 dtype ('float64' 来说太大的值),即使 isnan 和 isinf 为 false 且 dtype=float64 时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53203142/

相关文章:

python - 使用二进制搜索找到上限和下限值

python - 无法访问环境变量远程服务器 Django

python - 需要一个字符缓冲区对象 : Python 2. 7

python - 按变量索引对数据帧的一列进行分组

python - 使用 Python 在 SQL Server 中将表从一个数据库复制到另一个数据库

machine-learning - 使用 LingPipe 进行分层情感分析

python - 获取两个元组列表之间的差异

Python, Pandas 数据框。 pd.fillna() 用于具有特定值的特定列

python - 西亚诺 'Expected an array-like object, but found a Variable' : Using scan & categorical_crossentropy

python - 简单的非面向对象神经网络的成本 "jumping"