首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R中的C5.0输出打印规则/树

从R中的C5.0输出打印规则/树
EN

Stack Overflow用户
提问于 2013-03-13 13:22:02
回答 1查看 4K关注 0票数 2

我目前正在做一个项目,在这个项目中,我必须比较使用不同算法产生的分类模型。我想知道如何保存使用R中的C5.0包生成的规则/树的文本版本。

目前,我可以像下面这样设置和训练模型:

代码语言:javascript
复制
c50model = C5.0(x=X, y=Y, rules=TRUE)

然后,我可以通过调用以下命令来获取完整版本:

代码语言:javascript
复制
summary(c50model)

这个命令在命令窗口中生成了一个很好的模型输出,尽管我不确定如何将其保存到格式化的文本文件中。

我还知道C50包将在c50model$tree中生成规则文件的字符版本,在c50model$tree中生成树文件的字符串版本。理想情况下,我希望将这些文件的内容打印到一个文本文件中,以便以后可以轻松地将其合并到研究论文中。然而,不幸的是,这些字段的输出总是采用一种奇怪的格式...例如:

代码语言:javascript
复制
 "id=\"See5/C5.0 2.07 GPL Edition 2013-03-13\"\nentries=\"1\"\nrules=\"6\" default=\"0\"\nconds=\"2\" cover=\"322\" ok=\"321\" lift=\"1.55321\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellSize\" cut=\"3\" result=\"<\"\ntype=\"2\" att=\"BareNuclei\" cut=\"2\" result=\"<\"\nconds=\"2\" cover=\"305\" ok=\"304\" lift=\"1.55268\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\"<\"\ntype=\"2\" att=\"BareNuclei\" cut=\"3\" result=\"<\"\nconds=\"2\" cover=\"310\" ok=\"307\" lift=\"1.54282\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\"<\"\ntype=\"2\" att=\"NormalNucleoli\" cut=\"2\" result=\"<\"\nconds=\"2\" cover=\"137\" ok=\"132\" lift=\"2.65679\" class=\"1\"\ntype=\"2\" att=\"BareNuclei\" cut=\"3\" result=\">\"\ntype=\"2\" att=\"NormalNucleoli\" cut=\"2\" result=\">\"\nconds=\"2\" cover=\"179\" ok=\"170\" lift=\"2.62324\" class=\"1\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\">\"\ntype=\"2\" att=\"BareNuclei\" cut=\"2\" result=\">\"\nconds=\"2\" cover=\"175\" ok=\"166\" lift=\"2.61978\" class=\"1\"\ntype=\"2\" att=\"UniformityOfCellSize\" cut=\"3\" result=\">\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\">\"\n"

任何建议都是值得感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 14:10:20

代码语言:javascript
复制
string <- id=\"See5/C5.0 2.07 GPL Edition 2013-03-13\"\nentries=\"1\"\nrules=\"6\" default=\"0\"\nconds=\"2\" cover=\"322\" ok=\"321\" lift=\"1.55321\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellSize\" cut=\"3\" result=\"<\"\ntype=\"2\" att=\"BareNuclei\" cut=\"2\" result=\"<\"\nconds=\"2\" cover=\"305\" ok=\"304\" lift=\"1.55268\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\"<\"\ntype=\"2\" att=\"BareNuclei\" cut=\"3\" result=\"<\"\nconds=\"2\" cover=\"310\" ok=\"307\" lift=\"1.54282\" class=\"0\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\"<\"\ntype=\"2\" att=\"NormalNucleoli\" cut=\"2\" result=\"<\"\nconds=\"2\" cover=\"137\" ok=\"132\" lift=\"2.65679\" class=\"1\"\ntype=\"2\" att=\"BareNuclei\" cut=\"3\" result=\">\"\ntype=\"2\" att=\"NormalNucleoli\" cut=\"2\" result=\">\"\nconds=\"2\" cover=\"179\" ok=\"170\" lift=\"2.62324\" class=\"1\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\">\"\ntype=\"2\" att=\"BareNuclei\" cut=\"2\" result=\">\"\nconds=\"2\" cover=\"175\" ok=\"166\" lift=\"2.61978\" class=\"1\"\ntype=\"2\" att=\"UniformityOfCellSize\" cut=\"3\" result=\">\"\ntype=\"2\" att=\"UniformityOfCellShape\" cut=\"2\" result=\">\"\n"

如果您想要txt文件输出:

代码语言:javascript
复制
write(string, file="string.txt")

您会注意到,每次看到\n字符时都会有一个新行,并且所有引号前面都有\对其进行转义。print不会对它们做任何事情,但是cat会做。如果你想事先看到它在文件中的样子,你可以使用:

代码语言:javascript
复制
cat(string)

或者,如果您只想要摘要的输出:

代码语言:javascript
复制
write(capture.output(summary(c50model)), "c50model.txt")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15377645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档