为啥 plotcp() 图表中的 cp 值是从原始表中修改的?
Posted
技术标签:
【中文标题】为啥 plotcp() 图表中的 cp 值是从原始表中修改的?【英文标题】:Why are the cp values in plotcp() chart modified from the original table?为什么 plotcp() 图表中的 cp 值是从原始表中修改的? 【发布时间】:2015-10-11 08:52:52 【问题描述】:rpart plotcp() 图表上的 cp 值是多少? 我希望这些值与 printcp() 中的 cp 列匹配,但会计算以下比例(来自 plotcp 代码):
p.rpart <- x$cptable
cp0 <- p.rpart[, 1L]
cp <- sqrt(cp0 * c(Inf, cp0[-length(cp0)]))
因此,CV 表中的每个 cp 值都与同一列中的下一个值相乘,然后平方根。为什么?
【问题讨论】:
【参考方案1】:根据 Uwe 的回答,可以在这里找到:Re: [R] Different cp values in rpart() using plotcp() and printcp()
printcp() 给出修剪发生的最小 cp。 plotcp() 根据几何平均数作图
源码中的实际关系如下,其中cp0
是printcp中使用的cp值,cp
是printcp中使用的cp值绘图。
cp0 <- p.rpart[, 1L]
cp <- sqrt(cp0 * c(Inf, cp0[-length(cp0)]))
【讨论】:
以上是关于为啥 plotcp() 图表中的 cp 值是从原始表中修改的?的主要内容,如果未能解决你的问题,请参考以下文章