R 中的 rpart() 函数返回包含 xerror 和 xstd 列的 cptable。这是一个任意的例子。
CP nsplit rel error xerror xstd
1 0.161992664 0 1.0000000 1.0002790 0.01853630
2 0.043985638 1 0.8380073 0.8385070 0.01749290
3 0.030278222 2 0.7940217 0.7963870 0.01709283
4 0.013881619 3 0.7637435 0.7695997 0.01653832
5 0.010181164 4 0.7498619 0.7560406 0.01606136
6 0.008004043 5 0.7396807 0.7466449 0.01600352
7 0.007026176 6 0.7316767 0.7356289 0.01549501
8 0.006614587 8 0.7176243 0.7388091 0.01559568
9 0.005312278 10 0.7043951 0.7254237 0.01522645
10 0.004883811 11 0.6990828 0.7248227 0.01526605
有人认为应该根据最小交叉验证错误 (xerror) 对树进行修剪,因此将在发生最小 xerror 的第 10 行进行修剪。其他人争辩说,“1SE 规则”建议寻找最小值,然后再上升 1SE,因为那棵树不那么复杂。使用 xstd 列,建议使用 0.7248227 + 1*0.01526605 = 0.7400887,因此修剪应该发生在第 7 行。另请参阅这篇文章: 如何选择 rpart() 中的分割数?
我的简单问题:为什么标有“xstd”的列(可能意味着交叉验证的标准偏差),但人们将此称为 1SE 规则而不是 1SD 规则。