def test_classify_boosted(self): def build_stump(fPolarity): dt = dtree.DTree(ixAttr=0,fDefaultLabel=True) dt.add(dtree.DTree(fLabel=fPolarity),0) dt.add(dtree.DTree(fLabel=not fPolarity),1) return dt cCfer = 10 listCfer = [build_stump(bool(i%2)) for i in xrange(cCfer)] listWeight = [math.exp(-i) for i in xrange(cCfer)] inst = dtree.Instance([int(randbool())], randbool()) fLabel = dtree.classify_boosted(dtree.BoostResult(listWeight,listCfer), inst) self.assertEqual(bool(inst.listAttrs[0]), fLabel)
def dt_predict(data, m): """Classify an input.""" inst = dtree.Instance(data, False) if dtree.classify_boosted(m, inst): return 1 return 0