簡體   English   中英

ValueError:輸入包含 NaN、無窮大或對於 dtype('float64') 來說太大的值。 擬合誤差機器學習

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM