利用AdaBoost元算法提高分类性能

来源:互联网 发布:淘宝类目网址 编辑:程序博客网 时间:2024/06/03 06:55

一、

优点:泛化错误率降低,易编码,可以应用在大部分分类器上,无参数调整

缺点:对离群点敏感

使用数据类型:数值型和标称型数据


二、

1、元算法:对其他算法进行组合

不同算法集成、同一算法在不同设置下的集成、数据集不同部分分配给不同分类器之后的集成

2、算法比较:

bagging(自举汇聚法):从原始数据集随机选择S次后得到S个新数据集,不同分类器是通过串行训练获得的,每个新分类器都根据已训练出来的分类器的性能来进行训练;分类器权重相等

boosting:通过关注被已有分类器错分的数据来获得新的分类器;分类器权重不相等,每个权重代表对应分类器在上一轮迭代中的成功度


三、

Adaboost算法运行过程:

1.赋予每个样本一个权重,这些权重构成向量D,初始时权重相等

2.在训练数据上训练出一个弱分类器并计算分类器错误率

3.计算该弱分类器权重α,重新调整样本权重D,分对的样本权重降低,分错的样本权重提高,重新训练分类器

4.重复训练和调整权重,直到错误率为0或弱分类器数目达到用户指定值

5.最终分类结果=各弱分类器的结果加权求和

其中,

错误率=未正确分类的样本数目/所有样本数目

分类器权重α=1/2*ln((1-错误率)/错误率)

分对的样本权重Dt+1=Dtexp(-α)/sum(D)

分错的样本权重Dt+1=Dtexp(α)/sum(D)


四、

1、非均衡分类问题:在分类器训练时正例数目和反例数目相差很大

可以基于代价函数来控制分类器决策,可以通过过抽样和欠抽样调节数据集中正例和反例的数目

2、除了错误率外还有其他一些分类性能度量指标:正确率、召回率、ROC曲线



正确率=TP/(TP+FP)预测为正例的样本中实际为正例的比例

召回率=TP/(TP+FN),实际为正例的结果中预测为正例的比例

假阳率=FP/(FP+TN),实际为反例的结果中预测为正例的比例

真阳率=TP/(TP+FN),实际为正例的结果中预测为正例的比例


ROC曲线:用于度量分类中的非均衡性,ROC(receiver operating characteristic)

给出的是当阈值变化时假阳率和真阳率的变化情况

对不同ROC曲线进行比较时,用AUC(areaunder the curve)评估,完美分类器的AUC1.0,随机猜测的AUC0.5





阅读全文
0 0
原创粉丝点击