一直没能理解机器学习中方差是什么概念,今天偶然碰见scikit官网的一段程序,让我有了一些深刻的理解。
我们假设要计算回归树在回归问题中的方差,那么方差可以这样描述:
1. 我们有一个训练集Train
2.将其均分成k个子集,Train1, Train2, ..., Traink
3.k个子集可以分别训练k个回归树,RT1, RT2, ..., RTk
4. 我们有一个测试集Test
5. 用k个回归树对这同一个测试集测试,那么可以生成k个测试结果集:Result1, Result2, ..., Resultk
6. k个测试结果集,排成一列,即:
Result1={y11, y12, y13, ...}
Result2={y21, y22, y23, ...}
……
Resultk={yk1, yk2, yk3, ...}
7. 上面排列可以看成矩阵M,M[:, 1]表示k个回归树对同一个输入x1的不同回归结果
8.对M[:, 1]求方差,那么就可以知道回归树的方差
9. 如果回归树是一个方差小的模型,那么M[:, 1]的方差应该会小,
也就代表回归树在给定同一个问题的不同的训练集情况下,都能输出相似的稳定的模型,而不是各异的过拟合的模型