[英]HyperOpt multi metric evalution
有誰知道是否有可能以某種方式計算 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 的鏈接 如果有人想查看整個代碼: https : //github.com/mikolaj-halemba/Water-Quality-/blob/main/water_quality.ipynb
試試這些內置函數。
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.