朴素贝叶斯模型

时间:2013-09-05 10:28:09

标签: machine-learning artificial-intelligence classification naivebayes

当我们使用决策树分类器训练训练集时,我们将得到一个树模型。此模型可以转换为规则,并可以合并到java代码中。 现在,如果我使用Naive Bayes训练训练集,模型的形式是什么?我怎样才能将模型合并到我的java代码中? 如果培训没有模型,那么Naive Bayes和懒惰学习者(例如kNN)之间的区别是什么?

提前致谢。

2 个答案:

答案 0 :(得分:1)

朴素贝叶斯构造条件概率P(f_1,...,f_n|C_j)的估计,其中f_i是特征,C_j是类,使用贝叶斯规则和先验估计(P(C_j))和证据(P(f_i))可以翻译成x=P(C_j|f_1,...,f_n),可以大致读作“我认为给定的特征f_i,他们描述的类C_j的对象和我的确定性是x”。实际上,NB假设节目是独立的,因此它实际上使用x=P(f_i|C_j)形式的简单可比性,所以“给定f_i我认为它是C_j,概率为x”。

因此,模型的形式是概率集:

  • 每个功能P(f_i|C_j)和每个类f_i的条件概率C_j
  • 每个班级
  • priors P(C_j)
另一方面,KNN是完全不同的东西。它实际上不是严格意义上的“学习模型”,因为您不调整任何参数。它是一种分类算法,给定训练集,数字k只回答问题“对于给定点xk最近的主要类是什么训练集中的分数?“

主要区别在于输入数据 - 朴素贝叶斯处理“观察”的对象,因此您只需要一些存在于分类对象或缺席的特征。它是一种颜色,照片上的对象,句子中的单词或高度复杂的拓扑对象中的抽象概念无关紧要。虽然KNN是一种基于距离的分类器,它要求您对可以测量距离的对象进行分类。因此,为了对抽象对象进行分类,您必须首先提出一些度量,距离度量,它描述了它们的相似性,结果将高度依赖于这些定义。另一方面,朴素贝叶斯是一个简单的概率模型,它根本不使用距离的概念。它以相同的方式处理所有对象 - 它们在那里或它们不在,故事的结尾(当然它可以推广到具有给定密度函数的连续变量,但这不是重点)。

答案 1 :(得分:0)

朴素贝叶斯将构建/估计生成训练样本的概率分布。

现在,给定所有输出类的概率分布,您可以获取测试样本,并根据生成此样本的概率最高的类,将测试样本分配给该类。

简而言之,您将测试样本运行并运行所有概率分布(每个类别一个),并计算为该特定分布生成此测试样本的概率。