朴素贝叶斯分类器:在鸢尾花数据集上只能获得 30-40% 的准确率

Naive Bayes Classifier: Only get 30-40% accuracy on iris data set

过去几天,我正在尝试使用来自 UCI (http://archive.ics.uci.edu/ml/datasets/Iris). When trying to classify 100 random samples i get only 30-40% accuracy. I think my probability function is right because I tested it with the example from wikipedia (https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Examples)

的鸢尾花数据集在 python 中实施朴素贝叶斯分类器

现在我是这样做的:

然后对于 100 个随机样本 I:

不知何故我只得到 30-40%,我是不是做错了什么?

如果您想查看代码,请在此处:http://pastebin.com/sUYm97qi

类构建部分有错误

class1 = X[0:50]
class2 = X[51:100]
class3 = X[101:150]

应该是

class1 = X[0:50]
class2 = X[50:100]
class3 = X[100:150]

不重叠。不要有多少关系。 无论如何 - 尝试提供一些反馈,然后你会得到什么数字。

大声笑 -- 你写了非常 concise/clean 的代码所以我很困惑,直到我看到最后。

您正在比较 classes[max_index],预测的 class 名称与 y[max_index],最大索引实例标签值。

尝试将您的代码更改为

if(classes[max_index] == y[q]):
    corr += 1

你应该达到 96% 左右