-
Naive Bayes 算法基本原理
假设 为一任意样本,它的特征为
其中
表示该样本中出现的第i个特征项。预定义的样本类别为
。假设在给定的条件下,特征项之间都是相互独立的,不存在任何依赖关系。则根据Naïve Bayes算法,样本
与已知各类的条件概率
定义为:
因为对计算结果没有影响,所以可以忽略。而得到:
其中, 和
可以通过如下的公式来估计:
式中, 表示类
中的样本数目,
为特征项
在
中出现的频率总数。
对样本 进行分类,就是按公式(1)计算所有样本类在给定
情况下的概率,概率值最大的那个类就是
所在的类,即:
-
算法求解
对于贝叶斯判别,首先确定一个 的训练样本观测值矩阵,它的每一行对应一组DNA序列的观测值,每一列对应一个变量,这里将问题二中18种变量都用作训练。Matlab中提供NaiveBayes类,创建朴素贝叶斯分类器对象对训练样本进行判别,得到的结果为:
TO FROM | A | B |
A | 9 | 1 |
B | 0 | 9 |
由以上结果可以发现,A类中有9个样品得到正确的判别,还有1个样品被错误判到B类;B类中的9个样品均得到正确的判别。因此Bayes判别效果较好。则对10个未判别的DNA序列进行判别,程序见附录。最终得到分类结果为:
类别 编号 | A类 | B类 |
DNA编号 | 21,22,23,24,26,27,28,29,30 | 25 |