朴素贝叶斯 scikit 学习警告 "DeprecationWarning: Passing 1d arrays"

Naive bayes scikit learn warning "DeprecationWarning: Passing 1d arrays"

我知道在朴素贝叶斯 classifier 中不推荐传递一维数组,我不知道为什么。然而,由于某些原因,一旦我建立了我的模型,我想遍历一个项目列表,并且对于每个项目我应该调用朴素的 classifier 来预测 class。所以,假设我的训练集是 X,我的目标 class 集是 Y:然后我想为样本 xx 调用 classifier。

X = np.array([[1,0,1,1],[1,1,1,0],[0,0,0,1],[1,0,1,0])

Y = np.array([1,1,2,2])

from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X, Y)
GaussianNB()

xx=[1,1,0,0]
clf.predict_proba(xx)

我如何修复我的代码以消除此警告?

您的测试数据应与您的训练数据具有相同的结构,将您的测试 xx 修改为:

xx=[[1,1,0,0]]

将消除警告。