决策树中的一组结果

Posted

技术标签:

【中文标题】决策树中的一组结果【英文标题】:A set of results in Decision Tree 【发布时间】:2017-07-29 03:31:24 【问题描述】:

我有一个 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 = clas-s-regtree(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 的行。还是需要使用决策树? 【参考方案1】:

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

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

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

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

一些决策树教程:1、2 和 wikipedia

【讨论】:

以上是关于决策树中的一组结果的主要内容,如果未能解决你的问题,请参考以下文章

决策树是啥东东?

在决策树中缩放数据改变了我的结果?

能够将先验知识整合到决策树中的机器学习方法

scikit学习决策树导出graphviz - 决策树中的错误类名

弄清楚为啥 scikit-learn DecisionTreeClassifier 决定从结果决策树中排除一个特征?

为啥我们不能在决策树中随机启动根节点?