def results2df(results, dataset, n_ctrl, n_case, n_features):
"""
Converts the results dictionary into tidy dataframe format.
Parameters
----------
results : dict
results from cv_and_roc function
dataset : str
dataset ID
n_ctrl, n_case, n_features : int
number of controls, cases, and features
Returns
-------
resultsdf : pandas DataFrame
dataframe with 'mean_fpr', 'mean_tpr', 'fisher_p', and 'roc_auc' columns
from the results dict, 'kappa' from
cohen_kappa_score(results['y_preds']), and 'dataset', 'H_smpls',
'dis_smpls', and 'num_features' from the input parameters
"""
# Directly calling pd.DataFrame.from_dict doesn't work because
# this dictionary contains arrays, matrices, etc..
resultsdf = pd.DataFrame(data=np.array((results['mean_fpr'],
results['mean_tpr'])).T,
columns=['mean_fpr', 'mean_tpr'])
resultsdf['roc_auc'] = results['roc_auc']
resultsdf['fisher_p'] = results['fisher_p']
resultsdf['dataset'] = dataset
resultsdf['H_smpls'] = n_ctrl
resultsdf['dis_smpls'] = n_case
resultsdf['num_features'] = n_features
resultsdf['kappa'] = cohen_kappa_score(
results['y_true'], results['y_preds'])
return resultsdf
评论列表
文章目录