高精准的分类方法---Boosting

基本思想
回忆袋装技术:
根据重抽样自举法(各观测被抽到的概率相等1/n)建立k棵树,最后这k棵树各自对数据进行预测,预测结果根据少数服从多数规则得出最终结果。

对袋装技术的改进–boosting:
boosting也是进行重抽样,但是希望每次抽样,能较大概率的抽到预测错误的观测,即加入了权重的概念。
建模过程:
第1次抽样:各观测被抽到的概率相等,都是1/n,建立第1棵树,对数据进行预测,计算此时模型的预测错误率e1
第2次抽样:上一步预测正确的观测,被抽到的概率不变1/n;预测错误的观测被抽到的概率1/n*(1-e1)/e1,抽样结束后,建立第2棵树,对数据进行预测,计算此时模型的预测错误率e2
第3次抽样:重复第2步

当ei>0.5或ei=0时,停止迭代

预测过程:
对新数据进行预测时,k个模型各自分别进行预测,计算预测各自的预测误差率ei,进而得出各模型的权重wi: Breiman法 :1/2log((1-ei)/ei);Freund法:log((1-ei)/ei)
则新数据中,对于其中任一观测X,k个模型将有k个预测值ci和权重wi,对于分类问题,分别计算各类别的权重总和,最终取权重总和最高的类别作为预测结果。对于回归问题,最终取值=各预测值的加权平均值
R实现:
adabag包中的boosting 函数
boosting(输出变量名~输入变量名,data=数据框名,mfinal=重复次数,boos=TRUE,coeflearn=模型权重调整方法,control=参数对象名)

猜你喜欢

转载自blog.csdn.net/zhouxiuli1001/article/details/82689335