基于AdaBoost的分类(测试算法)

时间:2022-09-09 07:36:03

1、  一旦拥有多个弱分类器以及其对应的alpha值,进行测试就变得相对容易。在上节的代码中已经完成了大部分代码,现在要做的就是将弱分类器的结果抽取抽来,应用到某个事例中,每个弱分类器乘以相对应的权重值,加权结果就是最终的结果。

2、python代码

def adaClassify(datToClass,dataArr,classLabels):
classifierArr,aggClassEst1=adaBoostTrainDS(dataArr,classLabels,9)
dataMatrix = mat(datToClass)#do stuff similar to last aggClassEst in adaBoostTrainDS
m = shape(dataMatrix)[0]
aggClassEst = mat(zeros((m,1)))
for i in range(len(classifierArr)):
classEst = stumpClassify(dataMatrix, classifierArr[i]['dim'], classifierArr[i]['thresh'], classifierArr[i]['ineq'])
aggClassEst += classifierArr[i]['alpha']*classEst
print aggClassEst
return sign(aggClassEst)
3、输出结果

基于AdaBoost的分类(测试算法)
最终结果将[0,0]分到-1类,下面我们测试一下[[0,0],[5,5],[3,4]]

基于AdaBoost的分类(测试算法)

可以看到最终结果分类正确