搜档网
当前位置:搜档网 › Matlab决策树

Matlab决策树

Matlab决策树
Matlab决策树

Matlab决策树

matlab版本: matlab r2010b

matlab决策树有两种:回归树Regrection Trees和分类树Classification Trees

涉及两个最基本的函数,建立决策树classregtree,进行预测eval。以前的版本会用treefit 建立决策树,用treedisp显示决策树,建议使用新的。我们使用classregtree建立一个决策树模型t,然后其他操作可以使用t.function实现,非常方便。详细信息在Browser中搜索classification tree和regression tree。

相关函数

下面介绍一些关键函数。

classregtree——构造决策树

语法

t = classregtree(X,y)

t = classregtree(X,y,'Name',value)

X是样本特征值,y是样本类别,Name\value是成对出现的可选项,具体作用参见下表。t是得到的决策树模型。如果y是确定的数值,得到的是回归树。如果y是分类变量、字符

数组或者字符串数组,得到的就是分类树。

view()——画出决策树

语法

view(t)

view(t,param1,val1,param2,val2,...)

prune——决策树剪枝

语法

t2 = prune(t1,'level',level)

t2 = prune(t1,'nodes',nodes)

t2 = prune(t1)

说明

t2 = prune(t1,'level',level),剪掉t1中的后level层,0不剪枝,1表示最底层,2表示最深的两层,以此类推。

t2 = prune(t1,'nodes',nodes)。剪掉第nodes个分枝节点后的所有枝,如果nodes不是分枝节点就不会剪枝。

t2 = prune(t1)。剪枝控制选项,如果classregtree里的没有剪枝,可以在这里实现。

eval——用决策树进行预测

语法

yfit = eval(t,X)

yfit = eval(t,X,s)

[yfit,nodes] = eval(...)

[yfit,nodes,cnums] = eval(...)

[...] = t(X)

[...] = t(X,s)

说明

t是决策树模型,X是预测样本,yfit是预测结果。s是剪枝选项,如果s是单个数值,就是几层剪枝。如果s是数值数组,那么返回一个矩阵,yfit(i)就是s(i)层剪枝的结果。nodes 返回该样本所处的节点位置。cnums返回预测的类别号,1、2、3等。

示例

loadfisheriris;

t = classregtree(meas,species,'names',{'SL' 'SW' 'PL' 'PW'})

view(t)

t2 = prune(t,’level’,1)

t2.view

[yfit,nodes,cnums]=eval(t,meas);

matlab自带的决策树函数应该是最基本的ID3算法,功能十分完善。网上的其他算法,在画图、剪枝等方法可能有所不足。

相关主题