From 02e41be8577a063283d168be1600f193ce8bda6e Mon Sep 17 00:00:00 2001 From: giuliohome Date: Mon, 8 Sep 2014 23:40:04 +0200 Subject: [PATCH] python 3 encoding --- wrapper/xgboost.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/wrapper/xgboost.py b/wrapper/xgboost.py index b8eb773d7..21a1cd18a 100644 --- a/wrapper/xgboost.py +++ b/wrapper/xgboost.py @@ -436,7 +436,11 @@ def train(params, dtrain, num_boost_round = 10, evals = [], obj=None, feval=None for i in range(num_boost_round): bst.update( dtrain, i, obj ) if len(evals) != 0: - sys.stderr.write(bst.eval_set(evals, i, feval).decode()+'\n') + bst_eval_set=bst.eval_set(evals, i, feval) + if isinstance(bst_eval_set,str): + sys.stderr.write(bst_eval_set+'\n') + else: + sys.stderr.write(bst_eval_set.decode()+'\n') return bst class CVPack: @@ -467,7 +471,7 @@ def mknfold(dall, nfold, param, seed, evals=[], fpreproc = None): dtrain, dtest, tparam = fpreproc(dtrain, dtest, param.copy()) else: tparam = param - plst = tparam.items() + [('eval_metric', itm) for itm in evals] + plst = list(tparam.items()) + [('eval_metric', itm) for itm in evals] ret.append(CVPack(dtrain, dtest, plst)) return ret @@ -481,12 +485,16 @@ def aggcv(rlist, show_stdv=True): arr = line.split() assert ret == arr[0] for it in arr[1:]: + if not isinstance(it,str): + it=it.decode() k, v = it.split(':') if k not in cvmap: cvmap[k] = [] cvmap[k].append(float(v)) for k, v in sorted(cvmap.items(), key = lambda x:x[0]): v = np.array(v) + if not isinstance(ret,str): + ret = ret.decode() if show_stdv: ret += '\tcv-%s:%f+%f' % (k, np.mean(v), np.std(v)) else: