将决策树的输出保存到文本文件中
Saving decision tree's output into a text file
我正在寻找一种在 R
中保存决策树输出的方法。这是R
中的一个简单的决策树代码:
library(rpart)
data(kyphosis)
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
这里是 fit
的值:
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=8.5 62 6 absent (0.90322581 0.09677419)
4) Start>=14.5 29 0 absent (1.00000000 0.00000000) *
5) Start< 14.5 33 6 absent (0.81818182 0.18181818)
10) Age< 55 12 0 absent (1.00000000 0.00000000) *
11) Age>=55 21 6 absent (0.71428571 0.28571429)
22) Age>=111 14 2 absent (0.85714286 0.14285714) *
23) Age< 111 7 3 present (0.42857143 0.57142857) *
3) Start< 8.5 19 8 present (0.42105263 0.57894737) *
我尝试了 save
、dump
和 dput
,但它们不起作用并且改变了树的格式。有没有什么方法可以将树保存到文本文件中以保留它? sink
对我不起作用。
如果您想保留 fit
以供将来使用,save()
和 load()
应该可以使用。尝试
is.list(fit) # check it is there
save(fit,file="thisexample.txt", ascii=TRUE)
rm(fit) # to remove fit object
is.list(fit) # check it is not there
load(file="thisexample.txt")
is.list(fit) # check it is there
您应该会看到 [1] TRUE
,然后是 Error: object 'fit' not found
,然后是 [1] TRUE
,您可以继续使用 fit
我可能误解了您要保存的内容,在这种情况下,请改用 Ricky 的答案,并使用文件名
sink("exampletree.txt")
print(fit)
sink()
我用过 sink
,它对我有用。
sink("clipboard") # works in Windows, substitute "clipboard" for file name
print(fit)
sink()
从剪贴板粘贴,我得到
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=8.5 62 6 absent (0.90322581 0.09677419)
4) Start>=14.5 29 0 absent (1.00000000 0.00000000) *
5) Start< 14.5 33 6 absent (0.81818182 0.18181818)
10) Age< 55 12 0 absent (1.00000000 0.00000000) *
11) Age>=55 21 6 absent (0.71428571 0.28571429)
22) Age>=111 14 2 absent (0.85714286 0.14285714) *
23) Age< 111 7 3 present (0.42857143 0.57142857) *
3) Start< 8.5 19 8 present (0.42105263 0.57894737) *
测试将 "clipboard"
更改为文本文件名,并且与上面的内容相同。
我想知道你关于 sink
对你不起作用的评论,问题/输出是什么?
我正在寻找一种在 R
中保存决策树输出的方法。这是R
中的一个简单的决策树代码:
library(rpart)
data(kyphosis)
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
这里是 fit
的值:
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=8.5 62 6 absent (0.90322581 0.09677419)
4) Start>=14.5 29 0 absent (1.00000000 0.00000000) *
5) Start< 14.5 33 6 absent (0.81818182 0.18181818)
10) Age< 55 12 0 absent (1.00000000 0.00000000) *
11) Age>=55 21 6 absent (0.71428571 0.28571429)
22) Age>=111 14 2 absent (0.85714286 0.14285714) *
23) Age< 111 7 3 present (0.42857143 0.57142857) *
3) Start< 8.5 19 8 present (0.42105263 0.57894737) *
我尝试了 save
、dump
和 dput
,但它们不起作用并且改变了树的格式。有没有什么方法可以将树保存到文本文件中以保留它? sink
对我不起作用。
fit
以供将来使用,save()
和 load()
应该可以使用。尝试
is.list(fit) # check it is there
save(fit,file="thisexample.txt", ascii=TRUE)
rm(fit) # to remove fit object
is.list(fit) # check it is not there
load(file="thisexample.txt")
is.list(fit) # check it is there
您应该会看到 [1] TRUE
,然后是 Error: object 'fit' not found
,然后是 [1] TRUE
,您可以继续使用 fit
我可能误解了您要保存的内容,在这种情况下,请改用 Ricky 的答案,并使用文件名
sink("exampletree.txt")
print(fit)
sink()
我用过 sink
,它对我有用。
sink("clipboard") # works in Windows, substitute "clipboard" for file name
print(fit)
sink()
从剪贴板粘贴,我得到
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=8.5 62 6 absent (0.90322581 0.09677419)
4) Start>=14.5 29 0 absent (1.00000000 0.00000000) *
5) Start< 14.5 33 6 absent (0.81818182 0.18181818)
10) Age< 55 12 0 absent (1.00000000 0.00000000) *
11) Age>=55 21 6 absent (0.71428571 0.28571429)
22) Age>=111 14 2 absent (0.85714286 0.14285714) *
23) Age< 111 7 3 present (0.42857143 0.57142857) *
3) Start< 8.5 19 8 present (0.42105263 0.57894737) *
测试将 "clipboard"
更改为文本文件名,并且与上面的内容相同。
我想知道你关于 sink
对你不起作用的评论,问题/输出是什么?