有没有人知道在HyperOpt中是否有可能以某种方式计算出除了准确性之外的其他指标?我也希望它能显示我的F1,精确,回忆。有什么选择吗?如果是这样的话,请有人向我解释一下。
def objective(space):
pipe_params = {}
for s in space:
pipe_params[f"classifier__{s}"] = space[s]
pipe.set_params(**pipe_params)
score = cross_val_score(pipe, X_train, y_train, cv=10, scoring="accuracy",n_jobs=-1).mean()
# Is there an option to add other metrics to the return
return {'loss': 1- score, 'status': STATUS_OK, 'accuracy': score}trials_df = []
for cl in classifiers:
cl_name = cl['class'].__class__.__name__
print(f"\n\n{cl_name}")
pipe = Pipeline(steps = [
('data_processing_pipeline', data_processing_pipeline),
('classifier', cl['class'])
])
space = {}
for k in cl['params']:
space[k] = cl['params'][k]
max_evals = cl['max_evals']
trials = Trials()
best = fmin(fn=objective,
space=space,
algo=tpe.suggest,
max_evals=max_evals,
trials=trials)
best_params = space_eval(space, best)
print('\nThe best params:')
print ("{:<30} {}".format('Parameter','Selected'))
for k, v in best_params.items():
print ("{:<30} {}".format(k, v))
for trial in trials.trials:
trials_df.append({
'classifier': cl_name,
'loss': trial['result']['loss'],
'accuracy': trial['result']['accuracy'],
'params': trial['misc']['vals']
})如果有人想看完整的代码:,这是我到Github的链接。
发布于 2021-11-17 03:34:52
试试这些内置的函数。
sklearn.metrics import precision_score,recall_score,f1_score
print(precision_score(y_test,y_pred))
print(recall_score(y_test,y_pred))
print(f1_score(y_test,y_pred))https://stackoverflow.com/questions/69727854
复制相似问题