• 大小: 5.70KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: 其他
  • 标签: 其他  

资源简介


这是我从网上找到的一份决策树Cart算法代码,其中在确定分枝时采用的是熵不纯度确定的方法,代码可以运行.声明这份代码不是我原创的,是从某个网页上下载下来的,不过原作者的代码中许多变量没有作详细注释,我在阅读这份代码时加了许多自己的理解,几乎每个变量每句代码都作了解释,对于学习决策树CART算法的同学具有比较好的入门指导作者,这里将代码贡献出来与大家一起分享,如果有注释不准的地方,请发表评论提醒我。也向原作者致谢(不好意思,忘记在哪个网页上下载的了)

资源截图

代码片段和文件信息

function Tree = CART_MakeBinaryTree(Train_Samples TrainingTargets Region)
% --------------------------------------------------------------------------------------------------------------
% 基于 熵不纯度 递归地实现  非剪枝完全二叉树
% 输入变量: 
%   Train_Samples  : n个d维训练样本 为(n * d)的矩阵
%   TrainingTargets: 对应的类别属性 为(n * 1)的矩阵
%   Region         : 特征向量各维度的下限值与上限值 为(d * 2)的矩阵(特征值取离散的自然数区间 左小右大)

% 输出变量: 
%  一个基本树形节点 Tree  

% 基本树形节点结构 
% 一: label 标签(记录当前节点判定所用的维度 当节点为叶子时为空)
% 二: Value 阈值(记录当前所用维度判定之阈值 叶子节点时表类别)
% 三: Left  左枝(小于等于阈值的待分目标 归于此 当节点为叶子时为空)
% 四: Right 右枝(大于阈值的 归于此 当节点为叶子时为空)
% 五: Num   当前节点的样本的数目
% --------------------------------------------------------------------------------------------------------------

[nDim] = size(Train_Samples); % n: 样本数 Dim: 样本维度
[tm]   = size(Region); % t: 特征维度 m: 2因为是每个维度的下界与上界

if Dim ~= t || m ~= 2
    disp(‘参数错误 请检查‘);
    return;
end

% 检查类别属性是否只有一个属性 若是则当前为叶节点 否则需要继续分
if ( length(unique(Tra

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7440  2015-06-20 23:29  dtree_cart\CART_MakeBinaryTree.m

     文件       2402  2015-06-20 23:32  dtree_cart\CART_PruningBinaryTree.m

     文件       1285  2015-06-20 23:30  dtree_cart\CART_UseBinaryTree.m

     文件       1589  2015-06-20 23:34  dtree_cart\main.m

     目录          0  2015-06-20 23:38  dtree_cart

----------- ---------  ---------- -----  ----

                12716                    5


评论

共有 条评论