决策树给出了不可能的结果

MarkusWMarkusW 成员职位:22贡献我
2021年10月编辑 帮助



我刚刚用决策树训练了一台机器,它达到了99.7%的f分。
这听起来不错,但你听到朴素贝叶斯只得到66.4%
我在数据集中发现的最高分是使用深度学习的98.2%
我在数据集中发现的最高可信分数是78.5%

这个设计是基于这个视频:


我所做的就是用决策树操作符替换交叉验证中的朴素贝叶斯操作符。
即使有10倍的交叉验证,我也不会得到超过70%的结果。

高分的直接原因是,由于某种原因,标签和id之间存在很强的相关性,但我不知道如何限制算法使用哪些列。
问题是,我做错了什么?我该如何弥补?

最佳答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3297年RM数据科学家
    解决方案接受
    通常这只是因为两个类的两个集合被追加了。所以数据集的前半部分为真,后半部分为假?

    否则:通常id与日期相关,而日期与标签相关。

    您要做的是使用Select Attributes并删除id或set role并将id的角色设置为id。

    最好的
    马丁
    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德

答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3297年RM数据科学家
    你看那棵树了吗?它在做什么?

    BR,
    马丁
    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
  • MarkusWMarkusW 成员职位:22贡献我
    在开始使用随机森林之前,我可能应该看看这个问题是否仍然存在……
  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:875独角兽
    你好,

    看看决策树。也许您在数据中留下了一个与标签密切相关的属性,但在将来的数据中不可用。

    树是复杂的吗?决策是否显而易见?

    您可以在流程的各个部分设置断点(我尝试使用Decision Tree和Performance),以查看不同的验证步骤。

    问候,
    Balazs
  • MarkusWMarkusW 成员职位:22贡献我
    我可以肯定地说,唯一与正确的标签有一定关联的,就是标签本身。
    我相信,如果我犯了这个错误,程序用标签列来预测标签列,那么朴素贝叶斯也会得到一个非常高的f分。
    决策树中几乎没有我可以改变的设置。我最好的猜测是,如果有多个,我应该使用“不同的”决策树操作符,或者不知怎么的,10倍交叉验证不能以相同的方式工作,这取决于学习算法,我应该改变那里的设置。
  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:875独角兽
    嗨!

    如果再次发生这种情况,请查看逐步执行的结果。如果您得到一个非常简单的树,或者在不同的执行中产生了令人难以置信的性能,那么断点可以帮助您识别问题。

    有时多个属性一起与结果相关,而不是单独关联。决策树可能更擅长捕捉这些情况。

    问候,
    Balazs
    MarkusW
  • MarkusWMarkusW 成员职位:22贡献我
    好吧,尽管相关性不应该那么强,但它仍然是不需要的,树中的大多数因素似乎都是数据集的id。
    我的猜测是,如果我禁止它这样做,我会得到更好的结果。
    我假设我用“Set Role”操作符做到了这一点,但我不知道如何做到。
  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3297年RM数据科学家
    我相信,如果我犯了这个错误,程序用标签列来预测标签列,那么朴素贝叶斯也会得到一个非常高的f分。


    那不是真的。特别是NB算法可以很快被其他“噪声”属性混淆。这对于决策树来说是不正确的。


    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
    BalazsBarany
  • MarkusWMarkusW 成员职位:22贡献我
    是的,显然在“ID”(基本上就是行号)和标签之间有一种奇怪的强相关性。我只需要找出,如何从列中排除这个,这个算法是允许使用的。
    欢迎帮助。
  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:875独角兽
    可以通过“设置角色”将该列的角色设置为“id”。如果您已经有一个带有角色id的属性,只需输入第二个名称(例如ItemID)。所有标记有特殊角色的东西,无论是自定义的还是内置的,都被排除在建模之外。
登录注册置评。