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

Posted

技术标签:

【中文标题】朴素贝叶斯 scikit 学习警告“DeprecationWarning: Passing 1d arrays”【英文标题】:Naive bayes scikit learn warning "DeprecationWarning: Passing 1d arrays" 【发布时间】:2016-11-09 05:31:47 【问题描述】:

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

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)

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

【问题讨论】:

【参考方案1】:

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

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

将摆脱警告。

【讨论】:

以上是关于朴素贝叶斯 scikit 学习警告“DeprecationWarning: Passing 1d arrays”的主要内容,如果未能解决你的问题,请参考以下文章

在朴素贝叶斯(Python、scikit)中使用稀疏矩阵/在线学习

如何为 scikit-learn 的朴素贝叶斯指定先验概率

Scikit-Learn 朴素贝叶斯分类丨数析学院

SciKit-learn - 训练高斯朴素贝叶斯分类器

scikit-learn 朴素贝叶斯类库使用小结

实战:朴素贝叶斯对文档进行分类