【问题标题】:Can KNIME create a decision tree based on a set?KNIME 可以基于集合创建决策树吗?
【发布时间】:2018-01-09 13:28:06
【问题描述】:

例如,我有包含集合的数据(这不是我的真实数据):

Name,    Type,     Colors
Pikachu, Electric, Red|Black|Yellow
Raichu,  Electric, Brown
Meowth,  Normal,   Yellow|Brown
Togepi,  Fairy,    Yellow|White|Blue|Red
Eevee,   Normal,   Brown

我的目标是获得一个根据类型和颜色确定名称的规则集。

我在最后一列使用 Cell Splitter。我也有域计算器来为每一列创建离散值,因为我的某些列可能有超过 60 个值。
总的来说,我的工作流程是这样的:

数据看起来不错:

Pikachu Electric    [Red, Black, Yellow]
Raichu  Electric    [Brown]
Meowth  Normal      [Yellow, Brown]
Togepi  Fairy       [Yellow, White, Blue, Red]
Eevee   Normal      [Brown]

我的问题是我无法让树使用颜色设置值。我当前的输出规则如下所示 - 请注意,颜色未在任何地方使用:

$Type$ = "Electric" AND TRUE    Pikachu 2.0 1.0
$Type$ = "Normal" AND TRUE      Meowth  2.0 1.0
$Type$ = "Fairy" AND TRUE       Togepi  1.0 1.0

甚至可以使用集合作为决策树和规则集的一部分吗?如果有,怎么做?

【问题讨论】:

    标签: decision-tree knime


    【解决方案1】:

    如果你在Cell SplitterDomain Calculator 节点之间添加一个Ungroup 节点,那么我想你会得到你想要的。使用它并重新创建您的工作流程,我得到以下规则集:

    $Colors_SplitResultList$ = "Red" AND $Type$ = "Electric" => "Pikachu"
    $Colors_SplitResultList$ = "Black" AND $Type$ = "Electric" => "Pikachu"
    $Colors_SplitResultList$ = "Yellow" AND $Type$ = "Electric" => "Pikachu"
    $Colors_SplitResultList$ = "Brown" AND $Type$ = "Electric" => "Raichu"
    $Type$ = "Normal" AND TRUE => "Meowth"
    $Type$ = "Fairy" AND TRUE => "Togepi"
    

    【讨论】:

    • 谢谢,看起来很有希望。明天我回到办公室后测试它并报告。
    • 谢谢,这项工作 - Ungroup 将集合中每个值的行相乘(如数据库 JOIN)。不过,我有两个担忧:我担心这会给具有更多值的行带来偏差,因为许多其他值也重复。此外,这失去了具有多种颜色的单行的语义,但我不确定这对我来说是个问题。
    • 我想您至少可以通过在取消分组后使用GroupBy 来确保最小表示,并将所有列放入分组中。我同意如果规则将每个集合成员作为逻辑 OR 会很好,例如皮卡丘的规则变成了($Colors_SplitResultList$ = "Red" OR $Colors_SplitResultList$ = "Black" OR $Colors_SplitResultList$ = "Yellow") AND $Type$ = "Electric" => "Pikachu"-也许值得向 KNIME 的人们建议-支持[at]knime[dot]com-他们通常反应迅速
    猜你喜欢
    • 2019-01-25
    • 2020-07-14
    • 2015-09-04
    • 1970-01-01
    • 2016-08-20
    • 2016-05-22
    • 2015-09-09
    • 2018-09-05
    • 2014-05-09
    相关资源
    最近更新 更多