文本分类学习(六) AdaBoost和SVM
直接从特征提取,跳到了BoostSVM,是因为自己一直在写程序,分析垃圾文本,和思考文本分类用于识别垃圾文本的短处。自己学习文本分类就是为了识别垃圾文本。
中间的博客待自己研究透彻后再补上吧。
因为获取垃圾文本的时候,发现垃圾文本不是简单的垃圾文本,它们具有多个特性:
1. 种类繁多,难有共同的特征。涵盖各行各业的广告,或者政治敏感内容,或者色情信息。不像对文本分类那样,属于一类的文本,他们的内容都属于那个领域之内,特征提取就很方便
2. 具有一定的伪装性,表面上看80%的内容都属于正常,只有20%再介绍广告的内容
3. 形式多样化,有大量火星文的垃圾文本,有大量链接的垃圾文本,这些都无法分词。
之所考虑到AdaBoost ,一是因为确实有人研究过AdaBoost和SVM结合,将SVM训练出来的弱分类器集合成一个强分类器。
二是因为,我自己我感觉SVM对于以上描述的垃圾文本的分类效果会很差。SVM原本训练出来的就是一个强分类器,如果调节参数始终正确率在50%左右,那么就是一个弱分类器了,通过AdaBoost是否可以解决这个问题呢?一切都有待实际操作去验证。
AdaBoost 算法的基本思想:
一开始给定一个训练集N,给训练集标上权值W,初始阶段所有训练样本的W = 1/N 。
然后通过机器学习进行学习得到一分类器(弱分类器),发现训练集有些样本通过这个弱分类器会分错,我们把这些分错的样本权值增加,并且计算这个分类器的权值
第三步,改变权值过后的训练集,我们选择那些权值大的训练样本(上一个分类器分错的样本)挑选出来继续训练,得到第二个分类器,再重复第二步的步骤
迭代T次之后,得到T个分类器,和他们的权值,这些个分类器组合起来就是一个强分类器。
AdaBoost和SVM结合起来: