决策树 T 构建好后,需要估计预测准确率。直观说明,比如 N 条测试数据,X 预测正确的记录数,那么可以估计 acc=X/N 为 T 的准确率。但是,这样不是很科学。因为我们是通过样本估计的准确率,很有可能存在偏差。所以,比较科学的方法是估计一个准确率的区间,这里就要用到统计学中的置信区间(Confidence Interval)。

设 T 的准确率p是一个客观存在的值,X的概率分布为 X∼B(N,p),即 X 遵循概率为 p ,次数为 N 的二项分布(Binomial Distribution),期望E(X)=N∗p,方差 Var(X)=N∗p∗(1−p) 。由于当 N 很大时,二项分布可以近似有正态分布(Normal Distribution)计算,一般 N 会很大,所以 X∼N(np,n∗p∗(1−p))。可以算出,acc=X/N 的期望 E(acc)=E(X/N)=E(X)/N=p,方差 Var(acc)=Var(X/N)=Var(X)/N2=p∗(1−p)/N,所以acc N(p,p∗(1−p)/N)。这样,就可以通过正态分布的置信区间的计算方式计算执行区间了。

正态分布的置信区间求解如下:

1) 将acc标准化,即


z=(acc−p)p∗(1−p)/N−−−−−−−−−−−√

2) 选择置信水平 α=95%,或其他值,这取决于你需要对这个区间有多自信。一般来说,α越大,区间越大。

3) 求出 α/2 和 1−α/2 对应的标准正太分布的统计量 Zα/2和Z(1−α/2)(均为常量)。然后解下面关于 p 的不等式。acc可以有样本估计得出。即可以得到关于 p


−Zα/2≦(acc−p)p∗(1−p)/N−−−−−−−−−−−√≦Z(1−α/2)