为啥 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 值是从原始表中修改的?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV——直方图

为啥excel图表制作时引用无效?

为啥克隆的结构值仍然等于原始结构

为啥我们应该总是从函数返回值?

c++中为啥要函数返回引用?

为啥我的 Dojo 图表中的图例没有显示颜色?