4

当我们使用决策树分类器训练一个训练集时,我们将得到一个树模型。并且这个模型可以转换为规则并且可以合并到java代码中。现在如果我使用朴素贝叶斯训练训练集,模型是什么形式的?以及如何将模型合并到我的 java 代码中?如果训练没有产生模型,那么朴素贝叶斯和惰性学习器(例如 kNN)有什么区别?

提前致谢。

4

2 回答 2

1

朴素贝叶斯构造条件概率的估计,P(f_1,...,f_n|C_j)其中f_i是特征,C_j是类,使用贝叶斯规则和先验 估计P(C_j)(类的对象,我的确定是“。事实上,NB 假设活动是独立的,因此它实际上使用 形式的简单概率,所以“给定 f_i,我认为它是概率 x 的 C_j”。P(f_i)x=P(C_j|f_1,...,f_n)f_iC_jxx=P(f_i|C_j)

所以模型的形式是一组概率:

  • P(f_i|C_j)每个特征f_i和每个类别的条件概率C_j
  • P(C_j)每个班级的先验

另一方面,KNN 是完全不同的东西。它实际上不是严格意义上的“学习模型”,因为您不调整任何参数。它是一种分类算法,给定训练集和数字k只是回答问题“对于给定点x,训练集中最近点的主要类别是什么?”。k

主要区别在于输入数据 - 朴素贝叶斯适用于“观察”对象,因此您只需要分类对象中存在或不存在的一些特征。无论是颜色、照片上的对象、句子中的单词还是高度复杂的拓扑对象中的抽象概念,都没有关系。而 KNN 是基于距离的分类器,它要求您对可以测量之间距离的对象进行分类。因此,为了对抽象对象进行分类,您必须首先提出一些度量、距离度量,它描述了它们的相似性,结果将高度依赖于这些定义。另一方面,朴素贝叶斯是一个简单的概率模型,它根本不使用距离的概念。它以相同的方式对待所有对象——它们存在或不存在,

于 2013-09-05T12:25:10.707 回答
0

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

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

简而言之,您获取测试样本并通过所有概率分布(每个类别一个)运行它并计算针对该特定分布生成该测试样本的概率。

于 2013-09-08T20:13:17.273 回答