如何以partykit格式获取txt树的孩子
How to get the kids of a txt tree in partykit format
如果您运行满足以下条件:
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 相同的方式获取节点及其孩子的列表。
我该怎么做?
原则上,这是可能的,但很可能容易出错。即使它有效,它也不会包含 as.party(res)
包含的所有信息。例如,原始数据中的某些变量(Sepal.Length
和 Sepal.Width
)无法在此处推断出来。类似地,在某些级别不是任何终端节点中最频繁的级别的情况下,可能无法推断出所有响应级别。与所有终端节点中的所有响应级别相关的频率也可能无法完全重建。
简而言之:partykit
包在从其他包强制树时避免了纯文本解析,因为结果可能是 wrong/incomplete。转换对象(而不是它们的文本表示)工作可靠。
如果您运行满足以下条件:
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 相同的方式获取节点及其孩子的列表。 我该怎么做?
原则上,这是可能的,但很可能容易出错。即使它有效,它也不会包含 as.party(res)
包含的所有信息。例如,原始数据中的某些变量(Sepal.Length
和 Sepal.Width
)无法在此处推断出来。类似地,在某些级别不是任何终端节点中最频繁的级别的情况下,可能无法推断出所有响应级别。与所有终端节点中的所有响应级别相关的频率也可能无法完全重建。
简而言之:partykit
包在从其他包强制树时避免了纯文本解析,因为结果可能是 wrong/incomplete。转换对象(而不是它们的文本表示)工作可靠。