【问题标题】:A set of results in Decision Tree决策树中的一组结果
【发布时间】:2023-03-30 01:55:02
【问题描述】:

我有一个 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 的行。还是需要使用决策树?

标签: matlab machine-learning decision-tree


【解决方案1】:

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

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

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

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

一些决策树教程:12wikipedia

【讨论】:

    猜你喜欢
    • 2012-10-22
    • 2019-05-27
    • 2020-12-11
    • 2015-07-09
    • 2021-03-22
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多