朴素贝叶斯分类器的scikit-learn文档中的示例代码是否出错?

时间:2018-11-09 16:09:07

标签: python scikit-learn

我是Python的新用户,并且一直使用scikit-learn模块运行Naive Bayes分类器模型。 scikit learn Naïve Bayes documentation page上的以下示例代码正确吗?

from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
print("Number of mislabeled points out of a total %d points : %d"

不应该使用gnb.fit()函数,而是阅读:

y_pred = gnb.fit(iris.data.drop(columns=['target']), iris.target).predict(iris.data)

也就是说,需要从预测变量数据集中手动删除响应变量。当一位同事指出我从scikit-learn文档页面上抄写的代码是错误的时,我的模型获得了不合理的高精度度量。

1 个答案:

答案 0 :(得分:2)

iris.data不是一个数据框,它只是具有四个功能的(150,4)numpy数组。

iris.target是另一个仅包含目标类的numpy数组。

不确定如何在数组上调用drop(我只是检查了我有一个数组而不是pd df,这很有意义,sklearn不依赖于熊猫)。