当我们使用决策树分类器训练训练集时,我们将得到一个树模型。此模型可以转换为规则,并可以合并到java代码中。 现在,如果我使用Naive Bayes训练训练集,模型的形式是什么?我怎样才能将模型合并到我的java代码中? 如果培训没有模型,那么Naive Bayes和懒惰学习者(例如kNN)之间的区别是什么?
提前致谢。
答案 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
P(C_j)
k
只回答问题“对于给定点x
,k
最近的主要类是什么训练集中的分数?“
主要区别在于输入数据 - 朴素贝叶斯处理“观察”的对象,因此您只需要一些存在于分类对象或缺席的特征。它是一种颜色,照片上的对象,句子中的单词或高度复杂的拓扑对象中的抽象概念无关紧要。虽然KNN是一种基于距离的分类器,它要求您对可以测量距离的对象进行分类。因此,为了对抽象对象进行分类,您必须首先提出一些度量,距离度量,它描述了它们的相似性,结果将高度依赖于这些定义。另一方面,朴素贝叶斯是一个简单的概率模型,它根本不使用距离的概念。它以相同的方式处理所有对象 - 它们在那里或它们不在,故事的结尾(当然它可以推广到具有给定密度函数的连续变量,但这不是重点)。
答案 1 :(得分:0)
朴素贝叶斯将构建/估计生成训练样本的概率分布。
现在,给定所有输出类的概率分布,您可以获取测试样本,并根据生成此样本的概率最高的类,将测试样本分配给该类。
简而言之,您将测试样本运行并运行所有概率分布(每个类别一个),并计算为该特定分布生成此测试样本的概率。