朴素贝叶斯中的模型

4

当我们使用决策树分类器训练训练集时,会得到一棵树模型。该模型可以转换为规则并并入Java代码中。 那么,如果我使用朴素贝叶斯训练训练集,模型是什么形式的?如何将模型并入我的Java代码中? 如果没有从训练中得出模型,那么朴素贝叶斯和惰性学习者(例如kNN)之间有什么区别?

提前致谢。

2个回答

1
Naive Bayes构建了条件概率估计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”。
因此,该模型的形式是一组概率:
  • 每个特征f_i和每个类别C_j的条件概率P(f_i|C_j)
  • 每个类别的先验概率P(C_j)
KNN是完全不同的东西。严格来说,它实际上不是“学习模型”,因为您不需要调整任何参数。它是一种分类算法,给定训练集和数字k,简单地回答问题“对于给定点x,在训练集中k个最近点的主要类别是什么?”。
主要区别在于输入数据-朴素贝叶斯处理的是“观察”对象,因此您只需要一些在分类对象中存在或不存在的特征。无论是颜色、照片上的对象、句子中的单词还是高度复杂的拓扑对象中的抽象概念,都没有关系。而KNN是一种基于距离的分类器,需要您对可以测量距离的对象进行分类。因此,为了对抽象对象进行分类,您必须首先想出一些描述它们相似性的度量、距离度量,并且结果将高度依赖于这些定义。另一方面,朴素贝叶斯是一个简单的概率模型,根本不使用距离的概念。它以相同的方式处理所有对象-它们存在或不存在,结束故事(当然,它可以推广到具有给定密度函数的连续变量,但这不是重点)。

0

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接