我是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文档页面上抄写的代码是错误的时,我的模型获得了不合理的高精度度量。
答案 0 :(得分:2)
iris.data
不是一个数据框,它只是具有四个功能的(150,4)numpy数组。
iris.target
是另一个仅包含目标类的numpy数组。
不确定如何在数组上调用drop
(我只是检查了我有一个数组而不是pd df,这很有意义,sklearn不依赖于熊猫)。