[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64'). While fitting in model
[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64'). FITTING ERROR MACHINE LERNING
這是我的代碼:
#Naive Bayes
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X_train, y_train)
prediction = clf.predict(X_test)
scores = cross_val_score(clf, X, y, cv=5)
print(accuracy_score(prediction, y_test))
這是我的錯誤:
ValueError Traceback ( most recent call last )
<ipython-input-46-6d6525f64959> in <module>()
2 from sklearn.naive_bayes import GaussianNB
3 clf = GaussianNB()
----> 4 clf.fit(X_train, y_train)
5 prediction = clf.predict(X_test)
6 scores = cross_val_score(clf, X, y, cv=5)
3 frames
/usr/local/lib/python3.7/dist-packages/sklearn/utils/validation.py in _assert_all_finite(X, allow_nan, msg_dtype)
58 msg_err.format
59 (type_err,
---> 60 msg_dtype if msg_dtype is not None else X.dtype)
61 )
62 # for object dtype data, we only check for NaNs (GH-13254)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
我正在嘗試使用朴素貝葉斯方法來教機器,但我不斷收到此錯誤。
看起來您的數據具有 NaN 值。 放下它們。 使用此代碼。
X_train = X_train.dropna()
#Naive Bayes
from sklearn.naive_bayes import GaussianNB
此代碼將刪除包含 NaN 值的行。 如果要填充 NaN 而不是刪除它們,可以使用.fillna(np.mean(column_name))
用它們的列的平均值填充這些 NaN。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.