将朴素贝叶斯应用于具有 nan 值的测试数据

apply naive bayes on test data with nan-values

我训练了一种算法,可以在测试集上进行天气预报。

'Naive Bayes'
from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
import seaborn as sns

weatherbayes = GaussianNB()
weatherbayes.fit(X_train, y_train)
predbayes = weatherbayes.predict(df_test)

问题是,我的测试集有 nan 值,我不想用 'mean' 或其他东西替换它。应该忽略它们而不将它们从测试集中移除。

我的训练集是这样的:

我的测试集是这样的:

如果我不删除 nan 值,我会收到以下错误:

ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。

如果您想忽略它们,为什么不将它们从 training/test 集合中删除?我的意思是,删除它们会使您失去信息,但您需要这些信息吗?或许你可以看看解释的一些插补方法 here。 如果您想用特定的值替换 NaN,您可以使用例如:

df.fillna(df.mean(), inplace=True)

这将用列中的算术平均值替换缺失值。