问题
我试着用朴素的bayes来标记犯罪数据集,但是得到了非常糟糕的结果(7%的准确性)。朴素贝叶斯比我一直使用的其他算法运行得快得多,所以我想找出为什么分数这么低。
Research
阅读后,我发现朴素贝叶斯应该与平衡数据集一起使用,因为它对频率较高的类有偏见。由于我的数据是不平衡的,所以我想尝试使用互补的朴素贝叶斯,因为它是专门为处理数据倾斜而制作的。在描述这个过程的文章中,应用程序是用于文本分类的,但我不明白为什么这种技术在其他情况下不能工作。你可以找到我指的那篇论文,这里。简而言之,这个想法是根据类没有出现的情况来使用权重。
在做了一些研究之后,我找到了一个Java实现,但不幸的是,我
我是一个新来的python程序员。我想使用贝叶斯网络进行分类。因此,我在python.The中使用libpgm包,使用这个包的第一个代码是:
from libpgm.nodedata importNodeData
from libpgm.graphskeleton importGraphSkeleton
from libpgm.discretebayesiannetwork importDiscreteBayesianNetwork
from libpgm.pgmlearner importPGMLearner
nd=NodeData()
skel=GraphSkeleton()
fpath
我正在使用Swift (即使我的问题不是关于语言)和Python来测试我的ML逻辑。我有训练数据:
("add a new balloon", "add-balloon")
("add a balloon", "add-balloon")
("get last balloon", "get-balloon")
("update balloon color to red", "update-balloon")
当我尝试使用朴素贝叶斯对新句子进行分类时,比如
classi
根据我对查询的搜索,我在这里张贴,我有许多链接,这些链接提出了解决方案,但没有确切地提到这是如何做到的。例如,我已经探索了以下链接:
等。
因此,我将介绍我对如何使用带有tf-idf的朴素贝叶斯公式的理解,如下所示:
朴素贝叶斯公式:
P(word|class)=(word_count_in_class + 1)/(total_words_in_class+total_unique_words_in_all_classes(basically vocabulary of words in the entire training set))
tf-idf加权可以在上面的公式中使用如下: