示例#1
0
 def round_robin(*args):
     CsrEnsembler.check_validlity(*args)
     base = 1.0 / (len(args) + 1.0)
     mm = max((x.indptr[1:] - x.indptr[:-1]).max() for x in args)
     ret = smat_util.get_relevance_csr(args[0], mm)
     ret.data[:] += len(args) * base
     for i, x in enumerate(args[1:], 1):
         tmp = smat_util.get_relevance_csr(x, mm)
         tmp.data[:] += (len(args) - i) * base
         ret = ret.maximum(tmp)
     ret = smat_util.sorted_csr(ret)
     ret.data /= len(args)
     return ret
示例#2
0
 def rank_average(*args):
     CsrEnsembler.check_validlity(*args)
     mm = max((x.indptr[1:] - x.indptr[:-1]).max() for x in args)
     ret = sum(smat_util.get_relevance_csr(csr, mm) for csr in args)
     ret = smat_util.sorted_csr(ret)
     ret.data /= len(args)
     return ret