决策树中的一组结果

A set of results in Decision Tree

我有一个 1672x6 的数据。我把其中一些放在了图片中。

其中 x 值为 A1 A2 A3 A4 A5 A6,y 值为 B1 B2 ....B1672.

我在生成决策树时使用了以下代码:

vars = {'A1', ' A2 ','A3',' A4 ','A5',' A6'}
x = [A1 A2 A3 A4 A5 A6];
y = [B];
t = classregtree(x, y, 'method','classification', 'names',vars, ...
                 'categorical',[2 4], 'prune','off');
view(t)

它会生成像

这样的超级疯狂的树

我想得到比我给的值更大的值。当我说:

inst = [3 2.3 2 0 1 0];
prediction = eval(t, inst)

它只给我具有该变量的 B 值(如 B271),但我想获得所有值大于 inst 变量的 B 变量,例如 A1>3 A2>2.3 A3>2 A4>0 A5>1 A6>0。我怎样才能得到它们?

您似乎混淆了两件事:决策树查找所需的行

如果您想查找所有大于 inst 的行,下面是打印所有此类行的简单代码。

for i = 1:size(B,1)
    if  all(a(i,:)>inst)==1 
        i, 
    end
end

但是,决策树是一个完全不同的话题。在 决策树 中,您有一组条件(在您的情况下为 A1 到 A6)和许多用于训练的行(B1 到 B1672)以及每个条件的结果。当查询一个新的测试用例时,机器会从所有结果中决定最好的结果。

一些决策树教程:1, 2 and wikipedia