欢迎来到天天文库
浏览记录
ID:22211456
大小:196.10 KB
页数:19页
时间:2018-10-27
《生物信息学课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、算法课程设计报告(算法编程实现类)贝叶斯算法编程实现院系部门:重庆邮电大学学生学号:氺氺氺木氺氺氺氺氺学生姓名:氺氺氺氺氺氺氺氺氺指导教师:木木木氺木生物信息学院制2013年5月333444566617171717171818第一部分贝叶斯算法研究背景、特点与发展1.1贝叶斯算法研究背景1.2贝叶斯算法特点1.3J4叶斯算法发展第二部分算法分析与程序流程图设计2.1、基于对问题的分析2.2、基于对问题的java算法分析2.2、程序流程图设计第三部分实现设计语言选择与算法编程实现3.1、java算法实现第四部
2、分程序测试与结果分析4.1程序测试4.2结果分析第五部分总结与心得体会5.1总结与心得体会第六部分参考文献6.1参考文献(2个)第一部分贝叶斯算法研究背景、特点与发展1.1贝叶斯算法研宄背景W叶斯分类算法是统计学分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(Na*ivcBayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,且方法简单、分类准确率高、速度快。由于贝叶斯定理假设一个属性值对给定类的影响独立于其它属性的值,而此假设在实际情况中经常是不成立的,因此其分类准确率可
3、能会下降。为此,就出现了许多降低独立性假设的W叶斯分类算法,如TAN(treeaugmentedBayesnetwork)算法。1.2贝叶斯算法特点和决策树模型相比,朴素W叶斯模型发源于A典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属性
4、个数比较多或者属性之问相关性较火时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小吋,NBC模型的性能最为良好1.3贝叶斯算法发展贝叶斯分类理论有最初的朴素贝叶斯于EM算法,灰色关系继续发展为基于改进EM的朴素贝叶斯分类理论。第二部分算法分析与程序流程图设计2.1、基于对问题的分析对问题进行分析,设x是类标号未知的数据样本,设n为某种假的,如数据养本X属于某特定的类C。对与分类问题,希望确定P(H
5、X),即给定观测数据样本X,假定H成立的概率。贝叶斯定理给出了如下计算P(H
6、X)的简单有效的方法:
7、P(H
8、X)(X
9、H)P(H)/P(X)其中P(H)称为先验概率,P(X
10、H)表示假设H成立时观查到X的概率。P(H
11、X)表示后验概率。每一个样本数据用一个n维特征向量X={xl,x2,x3,…,xn}表示,分别描述具有n个属性Al,Al,一An的样木的n个度量。假定有m个类Cl,C2,…,Cm,给定一个未知数据样本X(即没有类编号),分类器将预测X属性与最高后验概率的类。也就是说,朴素贝叶斯分类将未知样本分配给Ci(l<=i<-m),当且仅当P(Ci
12、X)>P(Cj
13、X),j=l,2,…m,j不等于i这样
14、最大的P(Ci
15、X)对应的类Ci称为最大后验假定。由于P(X)对于所有类是常数,只需要P(X
16、Ci)P(Ci)最大即可。注意假设不是等概率的,那么类的先验概率可以用P(Ci)=si/s计算,其中si是类Ci的训练样本数,而s是训练样本总数。P(X
17、Ci)flp(xkIc/)=k=2.2、基于对问题的java算法分析首先需要将所有的训练数据读入到ArrayList〈ArrayList〈String>>对象集合中去,其中每一条训练数据对段一个ArrayList18、ataO将测试元组读如ArrayList〈String〉对象集合中去。下面就需要将△1^871^31:〈六1^371^31:〈3'114叩〉〉中的每一组训练元组按照类别属性分开,保存到Map>>对象中去用三重for循环来计算测试元组中每一属性所在每一个类别中概率的之积,并返回最大积所对应的类别名称。2.2、程序流程图设计TestBayes类main(String[]args)readTupleDataOreadTestDatalo垮VI练19、元组读入致ArrayList^ArrayList第三部分实现设计语言选择与算法编程实现3.1、java算法实现packageorg.decimalcalculate;importjava.math.BigDecimal:pub
18、ataO将测试元组读如ArrayList〈String〉对象集合中去。下面就需要将△1^871^31:〈六1^371^31:〈3'114叩〉〉中的每一组训练元组按照类别属性分开,保存到Map>>对象中去用三重for循环来计算测试元组中每一属性所在每一个类别中概率的之积,并返回最大积所对应的类别名称。2.2、程序流程图设计TestBayes类main(String[]args)readTupleDataOreadTestDatalo垮VI练
19、元组读入致ArrayList^ArrayList第三部分实现设计语言选择与算法编程实现3.1、java算法实现packageorg.decimalcalculate;importjava.math.BigDecimal:pub
此文档下载收益归作者所有