【问题标题】:Why i didn't get the complete decision tree(I mean all attributes)?为什么我没有得到完整的决策树(我的意思是所有属性)?
【发布时间】:2018-12-29 04:29:10
【问题描述】:

我在 MATLAB 中使用了决策树分类器。我使用了 7 个属性。但是当我绘制决策树时,它不包含所有属性,它只包含 2 或 1 个属性。我的代码有什么问题?

vars = {'Asymmetry' 'Border irregularity' 'colors' 'contrast' 'Co-relation' 
'Homogeneity' 'Energy'};
 x = [0.148 0.298 3 0.027 0.959 0.992 0.692
0.248 0.462 3 0.015 0.997 0.996 0.837
0.683 0.827 3 0.030 0.974 0.989 0.634
0.170 0.509 3 0.065 0.964 0.977 0.399
0.663 0.764 3 0.061 0.945 0.983 0.645
0.641 0.671 3 0.050 0.953 0.987 0.703
0.653 0.796 2 0.062 0.961 0.981 0.528
0.458 0.704 2 0.019 0.934 0.993 0.852
0.555 0.729 2 0.087 0.976 0.980 0.380
0.454 0.657 2 0.059 0.953 0.982 0.467
0.379 0.497 2 0.058 0.976 0.979 0.445
0.443 0.486 2 0.034 0.896 0.998 0.810
0.194 0.342 2 0.012 0.956 0.997 0.895
0.248 0.462 3 0.015 0.977 0.996 0.837
0.155 0.340 2 0.010 0.930 0.966 0.911
0.458 0.704 2 0.019 0.934 0.993 0.852];
y =  {'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'Cancer';'non-Cancer';'non-Cancer';'non-Cancer';'non-Cancer'};
t = fitctree(x,y,'PredictorNames',vars, ...
'CategoricalPredictors',{},'Prune','off');
view(t);
X1=[0.148 0.186 2 0.139 0.984 0.992 0.558] 
label = predict(t,X1);
view(t,'mode','graph'); 

代码的输出图片:

【问题讨论】:

    标签: matlab decision-tree


    【解决方案1】:

    您的代码没有任何问题 - 决策树并非旨在使用您的所有变量,它只是旨在使用根据给定决策标准提供最佳拟合的变量。使用所有变量会导致过度拟合,特别是考虑到您的一些变量彼此相关。

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 2020-02-07
      • 2021-06-02
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 2016-08-27
      • 2021-12-28
      • 1970-01-01
      相关资源
      最近更新 更多