您可以使用以下代码来实现:

data = {('XGBoost', {'AUC': 0.7276745033716057, 'Accuracy': 0.6584022038567493, 'Recall': 0.4745762711864407, 'Precision': 0.7304347826086957, 'F1 Score': 0.5753424657534246}),
        ('Gradient Boosting', {'AUC': 0.7207490431930017, 'Accuracy': 0.650137741046832, 'Recall': 0.4067796610169492, 'Precision': 0.7659574468085106, 'F1 Score': 0.5313653136531366}),
        ('CatBoost', {'AUC': 0.7204604823522265, 'Accuracy': 0.6584022038567493, 'Recall': 0.4576271186440678, 'Precision': 0.7431192660550459, 'F1 Score': 0.5664335664335665}),
        ('Logistic Regression', {'AUC': 0.7196099872425734, 'Accuracy': 0.6721763085399449, 'Recall': 0.5084745762711864, 'Precision': 0.7377049180327869, 'F1 Score': 0.6020066889632106}),
        ('Random Forest', {'AUC': 0.7185468683555071, 'Accuracy': 0.6556473829201102, 'Recall': 0.4689265536723164, 'Precision': 0.7280701754385965, 'F1 Score': 0.570446735395189})}

sorted_data = sorted(data, key=lambda x: x[1]['AUC'], reverse=True)[:2]
sorted_dict = dict(sorted_data)
print(sorted_dict)

输出结果为:

{('XGBoost', {'AUC': 0.7276745033716057, 'Accuracy': 0.6584022038567493, 'Recall': 0.4745762711864407, 'Precision': 0.7304347826086957, 'F1 Score': 0.5753424657534246}),
 ('Gradient Boosting', {'AUC': 0.7207490431930017, 'Accuracy': 0.650137741046832, 'Recall': 0.4067796610169492, 'Precision': 0.7659574468085106, 'F1 Score': 0.5313653136531366})}

这段代码首先定义了一个名为data的字典,包含了五个机器学习模型的性能指标。然后使用sorted函数对data进行排序,key参数指定按照每个元素的'AUC'值进行排序,reverse=True表示降序排列。最后使用切片[:2]取前两个AUC值最大的元素,并使用dict函数将结果转换为字典。

通过这段代码,您可以方便地提取出性能最好的两个机器学习模型。

Python字典排序:按'AUC'值降序排列并取前两个元素

原文地址: https://www.cveoy.top/t/topic/lR8i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录