标签:machine learning ensemble 机器学习 经验 组合方法
最近做了不少的kaggle机器学习竞赛,总结除了一个经验:做好了feature enginering可以进到前百分之20,如果要进到前百分之10,那么就需要Ensemble method的支持了,所以最近专门深入了解了以下组合的各种方法。通过学习发现组合方法真的是屡试不爽,在竞赛的后期,黔驴技穷,走投无路之时,不妨试试组合方法,会让人豁然开朗,
1110110011101111011111011011
但是由于某种原因变为了:1010110011101111011111011011
在编码纠正中的常见技术是传递冗余编码,假设对于以上编码,同一码字传送3遍,最终可以通过投票来纠正偶尔错误的编码:Original signal: 1110110011 Encoded: 10,3 101011001111101100111110110011 Decoding: 1010110011 1110110011 1110110011 Majority vote: 1110110011
1111111111我训练了3个分类器,每个分类器可以达到70%的正确率,最后从概率上来计算一下投票组合方法能达到多大的正确率:
All three are correct 0.7 * 0.7 * 0.7 = 0.3429 Two are correct 0.7 * 0.7 * 0.3 + 0.7 * 0.3 * 0.7 + 0.3 * 0.7 * 0.7 = 0.4409 Two are wrong 0.3 * 0.3 * 0.7 + 0.3 * 0.7 * 0.3 + 0.7 * 0.3 * 0.3 = 0.189 All three are wrong 0.3 * 0.3 * 0.3 = 0.027最后组合方法可以达到~78% (0.3429 + 0.4409 = 0.7838)的正确率。
1111111100 = 80% accuracy 1111111100 = 80% accuracy 1011111100 = 70% accuracy.投票结果:
1111111100 = 80% accuracy因为最终结果的高相关性,所以组合出来的效果并不理想。
1111111100 = 80% accuracy 0111011101 = 70% accuracy 1000101111 = 60% accuracy最终投票结果:
1111111101 = 90% accuracy所以提交结果之间的高多样性,低相关性会增加ensemble的效果。
Id,Prediction 1,0.35000056 2,0.35000002 3,0.35000098 4,0.35000111如果以上的结果和另一个分类器的结果来ensemble,结果并没有改变。
Id,Prediction 1,0.57 2,0.04 3,0.96 4,0.99所以面对ranking这类问题,我们可以对结果做一些calibration,例如初始结果如下:
Id,Rank,Prediction 1,1,0.35000056 2,0,0.35000002 3,2,0.35000098 4,3,0.35000111我们可以normalizing一下结果,这样就能比较好的去组合其他的结果了。
Id,Prediction 1,0.33 2,0.0 3,0.66 4,1.0
版权声明:本文为博主原创文章,未经博主允许不得转载。
Ensemble method of machine learning 机器学习中的组合方法
标签:machine learning ensemble 机器学习 经验 组合方法
原文地址:http://blog.csdn.net/frog_in_a_well/article/details/47066975