数据挖掘贝叶斯
(Bayes)
算法
java
实现
注:本算法的实现仅仅适用于小规模数据集的实验与测试,不适合用于工程应用
算法假定训练数据各属性列的值均是离散类型的。若是非离散类型的数据,需要首先进行数据的预处理,将非离散型的数据离散化。
算法中使用到了 DecimalCaculate 类,该类是 java 中 BigDecimal 类的扩展,用于高精度浮点数的运算。该类的实现同本人转载的一篇
博文:对 BigDecimal 常用方法的归类中的 Arith 类相同。
算法实现的代码如下
view plaincopy to clipboardprint?
1. packageBayes;
2. importjava.util.ArrayList;
3. importjava.util.HashMap;
4. importjava.util.Map;
5. importutil.DecimalCalculate;
6. /**
7. *贝叶斯主体类
8. *@authorRowen
9. *@qq443773264
10. *@mailluowen3405@163.com
11. *@blogblog.csdn.net/luowen3405
12. *@data2011.03.15
13. */
14. publicclassBayes{
15. /**
16. *将原训练元组按类别划分
17. *@paramdatas训练元组
18. *@returnMap<类别,属于该类别的训练元组>
19. */
20. Map<String,ArrayList<ArrayList<String>>>datasOfClass(ArrayList<ArrayList<String>>datas){
21. Map<String,ArrayList<ArrayList<String>>>map=newHashMap<String,ArrayList<ArrayList<String
>>>();
22. ArrayList<String>t=null;
23. Stringc="";