数据挖掘贝叶斯.pdfVIP

  • 0
  • 0
  • 约1.11万字
  • 约 8页
  • 2024-07-28 发布于浙江
  • 举报

数据挖掘贝叶斯(Bayes)算法java实现

注:本算法的实现仅仅适用于小规模数据集的实验与测试,不适合用于工程应用

算法假定训练数据各属性列的值均是离散类型的。若是非离散类型的数据,需要首先进行数据的预处理,将非离散型的数据离散化。

算法中使用到了DecimalCaculate类,该类是java中BigDecimal类的扩展,用于高精度浮点数的运算。该类的实现同本人转载的一篇

博文:对BigDecimal常用方法的归类中的Arith类相同。

算法实现的代码如下

viewplaincopytoclipboardprint?

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.*@blog/luowen3405

12.*@data2011.03.15

13.*/

14.publicclassBayes{

15./**

16.*将原训练元组按类别划分

17.*@paramdatas训练元组

18.*@returnMap类别,属于该类别的训练元组

19.*/

20.MapString,ArrayListArrayListStringdatasOfClass(ArrayListArrayListStringdatas){

21.MapString,ArrayListArrayListStringmap=newHashMapString,ArrayListArrayListString();

22.ArrayListStringt=null;

23.Stringc=;

24.for(inti=0;idatas.size();i++){

25.t=datas.get(i);

26.c=t.get(t.size()-1);

27.if(map.containsKey(c)){

28.map.get(c).add(t);

29.}else{

30.ArrayListArrayListStringnt=newArrayListArrayListString();

31.nt.add(t);

32.map.put(c,nt);

33.}

34.}

35.returnmap;

36.}

37.

38./**

39.*在训练数据的基础上预测测试元组的类别

40.*@paramdatas训练元组

41.*@paramtestT测试元组

42.*@return测试元组的类别

43.*/

44.publicStringpredictClass(ArrayListArrayListStringdatas,Array

文档评论(0)

1亿VIP精品文档

相关文档