如果您运行以下内容:
library(RWeka)
data(iris)
res = J48(Species ~., data = iris)
您将获得以下树:
R> res
J48 pruned tree
------------------
Petal.Width <= 0.6: setosa (50.0)
Petal.Width > 0.6
| Petal.Width <= 1.7
| | Petal.Length <= 4.9: versicolor (48.0/1.0)
| | Petal.Length > 4.9
| | | Petal.Width <= 1.5: virginica (3.0)
| | | Petal.Width > 1.5: versicolor (3.0/1.0)
| Petal.Width > 1.7: virginica (46.0/1.0)
Number of Leaves : 5
Size of the tree : 9
现在将其复制并粘贴到文本文件中并保存 - 这是我的输入文件。 我希望以一种格式获取每个节点(父亲)及其树的孩子(这只是一个例子)的列表,就像我在R中运行这个树并使用as.party一样。 (记住我不能使用它,因为它只是一种txt格式)。 我想获得节点及其孩子的列表,就像在partykit包中使用x $ kids一样。 我该怎么办?
答案 0 :(得分:1)
原则上,这是可能的,但很可能容易出错。即使它有效,它也不会包含as.party(res)
包含的所有信息。例如,此处无法推断原始数据(Sepal.Length
和Sepal.Width
)中的某些变量。类似地,在某些级别不是任何终端节点中的最频繁级别的情况下,可能不能推断出所有响应级别。与所有终端节点中的所有响应级别相关联的频率也可能不是完全可重构的。
简而言之:partykit
包避免在从其他包中强制树时进行纯文本解析,因为结果可能是错误的/不完整的。转换对象(而不是它们的文本表示)可靠地工作。