在我转载的其他的两篇文章里,有对cvCreateMTStumpClassifier的详细介绍,分别是http://blog.csdn.net/ding977921830/article/details/46356789和http://blog.csdn.net/ding977921830/article/details/46412465,但是我还是看了好多遍才梳理出一个头绪,现总结如下:
(1)预计算出所有特征对训练样本特征存储在valCache中,经过排序后,存储在idxCache;
(2)对特征分组,每组数量为portion;
(3)对于每个特征,也就是上面idxCache的每一行,利用宏ICV_DEF_FIND_STUMP_THRESHOLD( suffix, type, error ) 计算最佳阈值,衡量标准是不纯度(entropy,gini,misclasification,残差平方和)。
(4)最后的一个do-while循环,就是用来跳过和当前结点相同的特征值。虽然以后续的、相同的值作为结点划分左右子树,残差平方和可能会改变,但是决策树划分的最小单位是特征值的种类,因为在利用决策树进行分类的时候,必须对相同的特征值做出一样的决策(该划入左子树还是该划入右子树)。
时间: 2024-10-25 04:07:37