决策树分类算法的时间和性能测试.docx

上传人:b****5 文档编号:12390274 上传时间:2023-04-18 格式:DOCX 页数:25 大小:117.53KB
下载 相关 举报
决策树分类算法的时间和性能测试.docx_第1页
第1页 / 共25页
决策树分类算法的时间和性能测试.docx_第2页
第2页 / 共25页
决策树分类算法的时间和性能测试.docx_第3页
第3页 / 共25页
决策树分类算法的时间和性能测试.docx_第4页
第4页 / 共25页
决策树分类算法的时间和性能测试.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

决策树分类算法的时间和性能测试.docx

《决策树分类算法的时间和性能测试.docx》由会员分享,可在线阅读,更多相关《决策树分类算法的时间和性能测试.docx(25页珍藏版)》请在冰豆网上搜索。

决策树分类算法的时间和性能测试.docx

决策树分类算法的时间和性能测试

决策树分类算法的时间和性能测试

 

姓名:

ls

学号:

目录

一、项目要求3

二、基本思想3

三、样本处理4

四、实验及其分析9

1.总时间9

2.分类准确性.12

五、结论及不足13

附录14

 

一、项目要求

(1)设计并实现决策树分类算法(可参考网上很多版本的决策树算法及代码,但算法的基本思想应为以上所给内容)。

(2)使用UCI的基准测试数据集,测试所实现的决策树分类算法。

评价指标包括:

总时间、分类准确性等。

(3)使用UCIIrisDataSet进行测试。

2、基本思想

决策树是一个类似于流程图的树结构,其中每个内部节点表示在一个属性变量上的测试,每个分支代表一个测试输出,而每个叶子节点代表类或分布,树的最顶层节点是根节点。

当需要预测一个未知样本的分类值时,基于决策树,沿着该树模型向下追溯,在树的每个节点将该样本的变量值和该节点变量的阈值进行比较,然后选取合适的分支,从而完成分类。

决策树能够很容易地转换成分类规则,成为业务规则归纳系统的基础。

决策树算法是非常常用的分类算法,是逼近离散目标函数的方法,学习得到的函数以决策树的形式表示。

其基本思路是不断选取产生信息增益最大的属性来划分样例集和,构造决策树。

信息增益定义为结点与其子结点的信息熵之差。

信息熵是香农提出的,用于描述信息不纯度(不稳定性),其计算公式是

Pi为子集合中不同性(而二元分类即正样例和负样例)的样例的比例。

这样信息收益可以定义为样本按照某属性划分时造成熵减少的期望,可以区分训练样本中正负样本的能力,其计算公式是

三、样本处理

以UCI提供的IrisPlantsDatabase为测试样本,IrisPlants共有sepal-length,sepal-width,petal-length,petal-width四种属性,根据属性的不同分为三种:

class:

--IrisSetosa--IrisVersicolour--IrisVirginica

为方便实现,只取IrisSetosa和IrisVersicolour这两种植物的样例进行测试。

实现该算法的样例集合如下:

5.1,3.5,1.4,0.2,Iris-setosa4.9,3.0,1.4,0.2,Iris-setosa4.7,3.2,1.3,0.2,Iris-setosa4.6,3.1,1.5,0.2,Iris-setosa5.0,3.6,1.4,0.2,Iris-setosa5.4,3.9,1.7,0.4,Iris-setosa4.6,3.4,1.4,0.3,Iris-setosa5.0,3.4,1.5,0.2,Iris-setosa4.4,2.9,1.4,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa5.4,3.7,1.5,0.2,Iris-setosa4.8,3.4,1.6,0.2,Iris-setosa4.8,3.0,1.4,0.1,Iris-setosa4.3,3.0,1.1,0.1,Iris-setosa5.8,4.0,1.2,0.2,Iris-setosa5.7,4.4,1.5,0.4,Iris-setosa5.4,3.9,1.3,0.4,Iris-setosa5.1,3.5,1.4,0.3,Iris-setosa5.7,3.8,1.7,0.3,Iris-setosa5.1,3.8,1.5,0.3,Iris-setosa5.4,3.4,1.7,0.2,Iris-setosa5.1,3.7,1.5,0.4,Iris-setosa4.6,3.6,1.0,0.2,Iris-setosa5.1,3.3,1.7,0.5,Iris-setosa4.8,3.4,1.9,0.2,Iris-setosa5.0,3.0,1.6,0.2,Iris-setosa5.0,3.4,1.6,0.4,Iris-setosa5.2,3.5,1.5,0.2,Iris-setosa5.2,3.4,1.4,0.2,Iris-setosa4.7,3.2,1.6,0.2,Iris-setosa4.8,3.1,1.6,0.2,Iris-setosa5.4,3.4,1.5,0.4,Iris-setosa5.2,4.1,1.5,0.1,Iris-setosa5.5,4.2,1.4,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa5.0,3.2,1.2,0.2,Iris-setosa5.5,3.5,1.3,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa4.4,3.0,1.3,0.2,Iris-setosa5.1,3.4,1.5,0.2,Iris-setosa5.0,3.5,1.3,0.3,Iris-setosa4.5,2.3,1.3,0.3,Iris-setosa4.4,3.2,1.3,0.2,Iris-setosa5.0,3.5,1.6,0.6,Iris-setosa5.1,3.8,1.9,0.4,Iris-setosa4.8,3.0,1.4,0.3,Iris-setosa5.1,3.8,1.6,0.2,Iris-setosa4.6,3.2,1.4,0.2,Iris-setosa5.3,3.7,1.5,0.2,Iris-setosa5.0,3.3,1.4,0.2,Iris-setosa7.0,3.2,4.7,1.4,Iris-versicolor6.4,3.2,4.5,1.5,Iris-versicolor6.9,3.1,4.9,1.5,Iris-versicolor5.5,2.3,4.0,1.3,Iris-versicolor6.5,2.8,4.6,1.5,Iris-versicolor5.7,2.8,4.5,1.3,Iris-versicolor6.3,3.3,4.7,1.6,Iris-versicolor4.9,2.4,3.3,1.0,Iris-versicolor6.6,2.9,4.6,1.3,Iris-versicolor5.2,2.7,3.9,1.4,Iris-versicolor5.0,2.0,3.5,1.0,Iris-versicolor5.9,3.0,4.2,1.5,Iris-versicolor6.0,2.2,4.0,1.0,Iris-versicolor6.1,2.9,4.7,1.4,Iris-versicolor5.6,2.9,3.6,1.3,Iris-versicolor6.7,3.1,4.4,1.4,Iris-versicolor5.6,3.0,4.5,1.5,Iris-versicolor5.8,2.7,4.1,1.0,Iris-versicolor6.2,2.2,4.5,1.5,Iris-versicolor5.6,2.5,3.9,1.1,Iris-versicolor5.9,3.2,4.8,1.8,Iris-versicolor6.1,2.8,4.0,1.3,Iris-versicolor6.3,2.5,4.9,1.5,Iris-versicolor6.1,2.8,4.7,1.2,Iris-versicolor6.4,2.9,4.3,1.3,Iris-versicolor6.6,3.0,4.4,1.4,Iris-versicolor6.8,2.8,4.8,1.4,Iris-versicolor6.7,3.0,5.0,1.7,Iris-versicolor6.0,2.9,4.5,1.5,Iris-versicolor5.7,2.6,3.5,1.0,Iris-versicolor5.5,2.4,3.8,1.1,Iris-versicolor5.5,2.4,3.7,1.0,Iris-versicolor5.8,2.7,3.9,1.2,Iris-versicolor6.0,2.7,5.1,1.6,Iris-versicolor5.4,3.0,4.5,1.5,Iris-versicolor6.0,3.4,4.5,1.6,Iris-versicolor6.7,3.1,4.7,1.5,Iris-versicolor6.3,2.3,4.4,1.3,Iris-versicolor5.6,3.0,4.1,1.3,Iris-versicolor5.5,2.5,4.0,1.3,Iris-versicolor5.5,2.6,4.4,1.2,Iris-versicolor6.1,3.0,4.6,1.4,Iris-versicolor5.8,2.6,4.0,1.2,Iris-versicolor5.0,2.3,3.3,1.0,Iris-versicolor5.6,2.7,4.2,1.3,Iris-versicolor5.7,3.0,4.2,1.2,Iris-versicolor5.7,2.9,4.2,1.3,Iris-versicolor6.2,2.9,4.3,1.3,Iris-versicolor5.1,2.5,3.0,1.1,Iris-versicolor5.7,2.8,4.1,1.3,Iris-versicolor

根据样本说明中对样本的总统计:

对四种属性进行进一步划分:

sepal-length4.3-5.84a5.84-7.9b

sepal-width2.0-3.05c3.05-4.4d

petal-length1.0-3.76e3.76-6.9f

petal-width0.1-1.20g1.20-2.5h

得到处理后的测试样例集为:

testsepal-lengthsepal-widthpetal-lengthpetal-widthclass

1adegIris-setosa

2acegIris-setosa

3adegIris-setosa

4adegIris-setosa

5adegIris-setosa

6adegIris-setosa

7adegIris-setosa

8adegIris-setosa

9acegIris-setosa

10adegIris-setosa

11adegIris-setosa

12adegIris-setosa

13acegIris-setosa

14acegIris-setosa

15adegIris-setosa

16adegIris-setosa

17adegIris-setosa

18adegIris-setosa

19adegIris-setosa

20adegIris-setosa

21adegIris-setosa

22adegIris-setosa

23adegIris-setosa

24adegIris-setosa

25adegIris-setosa

26acegIris-setosa

27adegIris-setosa

28adegIris-setosa

29adegIris-setosa

30adegIris-setosa

31adegIris-setosa

32adegIris-setosa

33adegIris-setosa

34adegIris-setosa

35adegIris-setosa

36adegIris-setosa

37adegIris-setosa

38adegIris-setosa

39acegIris-setosa

40adegIris-setosa

41adegIris-setosa

42acegIris-setosa

43adegIris-setosa

44adegIris-setosa

45adegIris-setosa

46acegIris-setosa

47adegIris-setosa

48adegIris-setosa

49adegIris-setosa

50adegIris-setosa

51bdfhIris-versicolor

52bdfhIris-versicolor

53bdfhIris-versicolor

54acfhIris-versicolor

55bcfhIris-versicolor

56acfhIris-versicolor

57bdfhIris-versicolor

58acegIris-versicolor

59bcfhIris-versicolor

60acfhIris-versicolor

61acegIris-versicolor

62bcfhIris-versicolor

63bcfgIris-versicolor

64bcfhIris-versicolor

65acehIris-versicolor

66bdfhIris-versicolor

67acfhIris-versicolor

68acfgIris-versicolor

69bcfhIris-versicolor

70acfgIris-versicolor

71bdfhIris-versicolor

72bcfhIris-versicolor

73bcfhIris-versicolor

74bcfgIris-versicolor

75bcfhIris-versicolor

76bcfhIris-versicolor

77bcfhIris-versicolor

78bcfhIris-versicolor

79bcfhIris-versicolor

80acegIris-versicolor

81acfgIris-versicolor

82acegIris-versicolor

83acfgIris-versicolor

84bcfhIris-versicolor

85acfhIris-versicolor

86bdfhIris-versicolor

87bdfhIris-versicolor

88bcfhIris-versicolor

89acfhIris-versicolor

90acfhIris-versicolor

91acfgIris-versicolor

92bcfhIris-versicolor

93acfgIris-versicolor

94acegIris-versicolor

95acfhIris-versicolor

96acfgIris-versicolor

97acfhIris-versicolor

98bcfhIris-versicolor

99acegIris-versicolor

100acfhIris-versicolor

End

四、实验及其分析

1.总时间

(1).抽取不同规模的样例进行测试,比较决策树构造时间

随机抽取10组样例进行测试,运行结果如图2.6,总时间为0.05s

图110组样例构建决策树

随机抽取40组样例进行测试,运行结果如图2.6,总时间为0.167s

图240组样例构建决策树

随机抽取70组样例进行测试,运行结果如图2.6,总时间为0.369s

图370组样例构建决策树

选取100组样例进行测试,运行结果如图2.6,总时间为0.646s

图4100组样例构建决策树

得到样例数—时间表:

样例个数

10

40

70

100

运行时间(s)

0.05

0.167

0.369

0.646

表1.样例数—时间表

画出样例数—时间折线图:

图4样例数—时间折线图

由图4可以看出,本文的决策树分类算法的运行时间与样例数成正比关系。

2.分类准确性

我们知道样本数越多对总体的估计就越准确,即对IrisPlants的种类的预估就越准确,所以我们只对100样例数时的运行结果进行分类准确性测试。

图5100组样例构建决策树

可以用图形表示为:

图6决策树

随机抽取10组样例集合{7,13,26,37,48,55,62,71,89,94}进行带入测试,{√,√,√,√,√,√,√,√,√,×}得到准确率为90%;

随机抽取10组样例集合{2,14,27,39,41,52,65,78,82,90}进行带入测试,{√,√,√,√,√,√,√,√,×,√}得到准确率为90%;

随机抽取10组样例集合{1,12,29,32,45,59,67,74,85,97}进行带入测试,{√,√,√,√,√,√,√,√,×,√}得到准确率为100%;

综上,可以估计平均准确率约为93.3%。

五、结论及不足

结论:

1.本文实现的决策树分类算法的运行时间与样例数成正比关系。

2.用本算法进行IrisPlants预估的平均准确率约为93.3%。

不足:

1.强行取平均值进行划分的方法略显僵硬。

(我觉得还是可以...)

2.只实现了两种IrisPlants的预估,Iris-virginica的样本没有用到。

(详细代码在附录中)

附录

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

#defineMAXLEN6//输?

入?

每?

行D的?

数簓据Y个?

数簓

//多à叉?

树骸?

的?

实害?

现?

//1广?

义?

表括?

//2父?

指?

针?

表括?

示?

法ぁ?

,?

适酣?

于?

经-常£找ò父?

结á点?

的?

应畖用?

//3子哩?

女?

链ⅰ?

表括?

示?

法ぁ?

,?

适酣?

于?

经-常£找ò子哩?

结á点?

的?

应畖用?

//4左哩?

长¤子哩?

,?

右?

兄?

弟台?

表括?

示?

法ぁ?

实害?

现?

比括?

较?

麻é烦?

//5每?

个?

结á点?

的?

所ù有瓺孩¢子哩?

用?

vector保馈?

存?

//教ì训μ:

数簓据Y结á构1的?

设Θ?

计?

很ü重?

要癮,?

本?

算?

法ぁ?

采é用?

5比括?

较?

合?

适酣?

,?

同?

时骸?

//注痢?

意癮维?

护¤剩骸?

余?

样ù例和í剩骸?

余?

属?

性?

信?

息¢,?

建¨树骸?

时骸?

横á向ò遍括?

历え?

考?

循-环·属?

性?

的?

值μ,?

//纵罽向ò遍括?

历え?

靠?

递蘗归é调獭?

用?

vector>state;//实害?

例集ˉ

vectoritem(MAXLEN);//对?

应畖一?

行D实害?

例集ˉ

vectorattribute_row;//保馈?

存?

首骸?

行D即′属?

性?

行D数簓据Y

stringend("end");//输?

入?

结á束?

stringIrissetosa("Iris-setosa");

stringIrisversicolor("Iris-versicolor");

stringIrisvirginica("Iris-virginica");

stringblank("");

map>map_attribute_values;//存?

储洹?

属?

性?

对?

应畖的?

所ù有瓺的?

值μ

inttree_size=0;

structNode{//决?

策?

树骸?

节ú点?

stringattribute;//属?

性?

值μ

stringarrived_value;//到?

达?

的?

属?

性?

值μ

vectorchilds;//所ù有瓺的?

孩¢子哩?

Node(){

attribute=blank;

arrived_value=blank;

}

};

Node*root;

//根ù据Y数簓据Y实害?

例计?

算?

属?

性?

与?

值μ组哩?

成é的?

map

voidComputeMapFrom2DVector(){

unsignedinti,j,k;

boolexited=false;

vectorvalues;

for(i=1;i

照?

列遍括?

历え?

for(j=1;j

for(k=0;k

if(!

values[k].compare(state[j][i]))exited=true;

}

if(!

exited){

values.push_back(state[j][i]);//注痢?

意癮Vector的?

插?

入?

都?

是?

从洙?

前°面?

插?

入?

的?

,?

注痢?

意癮更ü新?

it,?

始?

终?

指?

向òvector头?

}

exited=false;

}

map_attribute_values[state[0][i]]=values;

values.erase(values.begin(),values.end());

}

}

//根ù据Y具?

体?

属?

性?

和í值μ来ぁ?

计?

算?

熵?

doubleComputeEntropy(vector>remain_state,stringattribute,stringvalue,boolifparent){

vectorcount(2,0);

unsignedinti,j;

booldone_flag=false;//哨Θ?

兵?

值μ

for(j=1;j

if(done_flag)break;

if(!

attribute_row[j].compare(attribute)){

for(i=1;i

if((!

ifparent&&!

remain_state[i][j].co

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1