python - ValueError:输入在python中包含NaN
问题描述
我的代码
from sklearn.naive_bayes import MultinomialNB
from sklearn.linear_model import SGDClassifier
mnb=MultinomialNB()
svm=SGDClassifier(max_iter=1000, tol=0.2)
mnb_bow_predictions=train_predict_evaluate_model(classifier=mnb,
train_features=bow_train_features,
train_labels=train_labels,
test_features=bow_test_features,
test_labels=test_labels)
并提出错误
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in _assert_all_finite(X, allow_nan)
58 elif X.dtype == np.dtype('object') and not allow_nan:
59 if _object_dtype_isnan(X).any():
---> 60 raise ValueError("Input contains NaN")
61
62
ValueError: Input contains NaN\
是什么让我的程序引发了这个错误?数据集或函数中的错误?
解决方案
所有特征和标签值都必须是有限的。如果bow_train_features
, train_labels
, bow_train_features
,train_labels
是 DataFrames 或 Numpy 数组,您可以使用以下代码仅过滤训练/测试集中的完全有限观察:
# Create finite observation filters for train/test sets
train_finite_filter = np.isfinite(bow_train_features) & np.isfinite(train_labels)
test_finite_filter = np.isfinite(bow_test_features) & np.isfinite(test_labels)
# Filter for finite training observations
bow_train_features_finite = bow_train_features[train_finite_filter]
train_labels_finite = train_labels[train_finite_filter]
# Filter for finite test observations
bow_test_features_finite = bow_test_features[test_finite_filter]
test_labels_finite = test_labels[test_finite_filter]
推荐阅读
- blogger - 使用 WebP 进行 Blogger 图像压缩
- mysql - SQL 语法错误“'UNSIGNED' 附近的语法不正确。”
- reactjs - 我可以将 npx create-react-app 创建的文件夹中的 node_modules、public、src、package.json 等复制并粘贴到其他文件夹吗?
- ios - 在 iOS 浏览器中流式传输 AWS S3 HLS 视频
- python - 如何在 PYTHON 中的列表字典中迭代值
- flutter - 颤振动画没有持续时间
- javascript - Js:将箭头函数名称分配给变量
- ios - 共享扩展 - 自 iOS 14 以来首次尝试未显示在共享菜单中的应用
- r - 检查文件是否有 x 列,参数长度为零
- postgresql - Postgres 服务器是否只在一台机器上存储数据?