1

我正在尝试对我的朴素贝叶斯代码进行拉普拉斯平滑。它在 70% 训练 30% 测试集上给了我 72.5% 的准确率,这有点低。有人看到有什么不对吗?

posTotal=len(pos)
negTotal=len(neg)

for w in larr:
  if (w not in pos) or (w not in neg):
    unk[w]+=1
    unkTotal=len(unk)
  else:
    if (w in pos):
      posP+=(math.log10(pos[w])-math.log10(posTotal))
    if (w in neg):
      negP+=(math.log10(neg[w])-math.log10(negTotal))

pos并且neg是默认的。

4

1 回答 1

0

我的 Python 有点生锈了,但是对于if,你不想要if (w not in pos) and (w not in neg)吗?似乎这个版本只会调整在pos和中以某种方式找到的单词的分数neg

于 2013-11-14T00:31:59.847 回答