def _fit_regressor_stump_c_ext_threaded(X, y, sample_weight, argsorted_X=None):
if c_classifiers is None:
return _fit_regressor_stump_threaded(X, y, sample_weight, argsorted_X)
Y = y.flatten()
if sample_weight is None:
sample_weight = np.ones(shape=(X.shape[0],), dtype='float') / (X.shape[0],)
else:
sample_weight /= np.sum(sample_weight)
classifier_result = []
with cfut.ThreadPoolExecutor(max_workers=psutil.cpu_count()) as tpe:
futures = []
if argsorted_X is not None:
for dim in six.moves.range(X.shape[1]):
futures.append(
tpe.submit(_regressor_c_learn_one_dimension, dim, X[:, dim], Y, sample_weight, argsorted_X[:, dim]))
else:
for dim in six.moves.range(X.shape[1]):
futures.append(tpe.submit(_regressor_c_learn_one_dimension, dim, X[:, dim], Y, sample_weight))
for future in cfut.as_completed(futures):
classifier_result.append(future.result())
# Sort the returned data after lowest error.
classifier_result = sorted(classifier_result, key=itemgetter(1))
best_result = classifier_result[0]
return {
'best_dim': int(best_result[0]),
'min_value': float(best_result[1]),
'threshold': float(best_result[2]),
'coefficient': float(best_result[3]),
'constant': float(best_result[4]),
}
评论列表
文章目录