首先先讲个故事吧,三人成虎的故事应该都听说过吧。就是当三个人都来说同一件事情的时候,假的也成了真的。这个算法其实就是利用的这个原理,首先构造多个决策器,然后由多个决策器共同投票来确定一件事情的真伪。
下面直接上列子:
这里有0-9十条数据,这十条数据就是供给我们训练的。首先将这十件事情的权重都设为0.1。我们现在需要确定一个阈值(即分界点),把这十条数据分成误差率最小的两类。
假设我们将阈值设成0(即大于0的为一类,小于等于0的为第二类),那么理想情况应该是左边都是1,右边都是-1(也可以反过来,取错误率低于0.5的一种分法),然而现实是左边都是1满足了,而右边有3、4、5、9四条数据都错了,因为他们权重都是0.1,所以这种分法的错误率是0.4。再看反过来的情况,左边是-1,右边是1的话就有6个分错的,这样错误率就是0.6了,对于0这个阈值来说取错误率小于0.5的分法,所以我们说0作为阈值的错误率是0.4。
同样,我们遍历所有的阈值,可以查询出来当阈值为2或者8的时候错误率最小,为0.3。
我们就取2为第一个决策器的阈值(当然你选8也是可以的,只不过为了写程序便利惯用第一个检索到的)。记住故事上所说的,我们需要多个决策器来共同确定某一件事情的真伪,所以选出这一个决策器自然是不够的,首先他在判断6、7、8这三条数据的时候就出错了。怎样避免在6、7、8这三条上再次犯错呢,我们就需要构造更多的决策器。因为第一个决策器在6、7、8上犯错误了,所以他在最后表决权的权重就是0.4236,这个数值是怎么算来的呢?