【问题标题】:How to handle the Nominal Data by Weka J48Weka J48 如何处理标称数据
【发布时间】:2015-01-09 00:08:38
【问题描述】:

当我使用二元拆分选项运行 weka 的 J48 时,构建了这样的决策树。

http://www.fastpic.jp/viewer.php?file=2693704973.jpg

输入解释变量是1个由问题ID+答案ID组成的名义数据。 1 个标称数据,1 个交易。 我想知道为什么树只在一侧。

是我的数据集或表定义还是原来的二进制拆分方式造成的? 我希望树的两边都有节点。

如果您知道这样的选择,请告诉我。


!样本数据!请忽略点'・'

  • usr,qa,class
  • A,11,1
  • A,21,1
  • A,31,1
  • B,12,2
  • B,22,2
  • B,32,2
  • C,13,3
  • C,23,3
  • C,33,3
  • D,11,4
  • D,22,4
  • D,31,4
  • E,11,1
  • E,23,1
  • E,31,1
  • F,12,2
  • F,22,2
  • F,33,2
  • G,13,3
  • G,22,3
  • G,32,3
  • H,12,4
  • H,21,4
  • H,33,4

【问题讨论】:

  • 能否提供一个简短的数据样本?
  • 感谢您的关注。我添加了示例数据。请参考他们。

标签: binary-tree weka decision-tree


【解决方案1】:

构建的树中没有错误,也没有选项会真正修改它。如果您的问题与您的同一个 Akinator 项目有关,请重新格式化您的数据以获取同一实例/行上的所有问题(即 11、21、31),并将答案作为目标类。

PS:如果您将这些数据导入为 CSV,Weka 会将这些数据视为数字(而不是名义上的)。然后,您应该添加一个非数字字符(即#1、#2、#3...),以便 Weka 将这些数据视为名义数据。

【讨论】:

  • 感谢您的回答。是的,它与 akinator 的有关。一旦我考虑了与您的重新格式化意见相同的方式,但我希望用户自己在应用程序中添加相关问题。那么我应该根据每个问题准备专栏吗?就像一个 qa1, qa2, qa3...
  • 不是cvs导入而是数据库。似乎 weka 会自动引用数据类型。
  • Weka 会自动检测,但完整的数字数据将被检测为数字(不是分类/名义)。如果您希望用户添加问题,您需要使用可更新的分类器,在在这种情况下,您应该从一开始就准备更多的空问题,或者为任何新问题重新构建分类器。在最后一种情况下,您只需将这些新问题添加到功能列表中。
  • 但是,与此处提出的解决方案相比,基于树的解决方案是有限的:stats.stackexchange.com/questions/6074/…
  • 是的,我的应用程序继续按问题重新构建决策树。你的意思是我需要提前准备好我的数据库中的空白列吗?
猜你喜欢
  • 2011-12-17
  • 2016-04-24
  • 2014-09-18
  • 2015-06-18
  • 2013-01-15
  • 1970-01-01
  • 2021-08-04
  • 2017-06-26
  • 2014-08-29
相关资源
最近更新 更多