先把主要的算法进行整理,后续会对py结合算法的实践进行整理。
第五弹,模型融合
目的是为了提高机器学习的效果,其实就是整理几个机器算法进行参考计算后续的训练。
三个模型融合思路:
1、bagging,训练多个分类器,结果取平均。并列的进行训练,所有的分类器无关并行进行训练。
分类:可以用于结果做vote。
回归:可以对这些模型结果取平均。
2、boosting,从弱学习开始加强,加权训练,这是串联的,也就说后一个训练的数据要参考或者直接就是拿前一个训练的数据结果进行训练。
上式中,arg min f(x) 是指使得函数 f(x) 取得其最小值的所有自变量 x 的集合。F是分类器
3、stacking,也是集合了多个分类器或者回归模型。
1、bagging模型
代表就是随机深林,深林是指决策树这样的算法,并行计算,随机是指1、数据随机。2、特征随机。一般可以设置为60%的量。
由于数据和特征都是随机的,并且量不是全部,所以训练出来的模型一定不一样。
优势:
1、可以处理很高维度的,也就是特征特别多的数据,并且不用做随机变量特征选择。
2、训练出来后可以对随机变量的特征进行重要性的排序。
eg:ABCD分别是随机变量的特征。
建模1:A+B+C+D——建模——error1(错误率)
建模2:A+B2+C+D——建模——error2(错误率)
这里把B2的数据进行随机生成,比如如果是年龄,这里B2可以改为0.1,290等这样不可能的随机数据,或者可以直接改为A+C+D进行建模。
结果:error1约等于或者大于error2 则认为B特征不重要,如果相反,error2大于error1,说明B重要。可以取消B特征。
有些算法不适合这个bagging,比如KNN,这个算法就不适合,因为泛化能力差。
树模型,理论上是随机数据越多越好,但是其实到一定的数量,就会出现波动,所以这点需要注意。
2、Boosting模型
代表是adaboost,xgboost(竞赛重点)
Adaboost迭代算法,分类思路是根据前一次的分类结果进行数据权重的修改,如果某个数据这次分错了,下次对这个数据更大权重。每个分类器根