python - 使用 for 循环创建不同的列表变量名称
问题描述
我希望对 3 个不同的 ML 分类器使用交叉验证,并希望在没有重复代码的情况下获得所有结果
model_01 = RandomForestClassifier(max_depth = 2, random_state = 0)
model_02 = XGBClassifier(max_depth = 2, n_estimators=200)
model_03 = LogisticRegression()
classifier= [model_01,model_02,model_03]
for i in classifier:
kf = StratifiedKFold(n_splits=5, random_state=random_seed)
cross_val_f1_score_lst = []
cross_val_accuracy_lst = []
cross_val_recall_lst = []
cross_val_precision_lst = []
我不会通过 ML 代码,因为这个问题没有必要。但我想为上面给出的每个列表附加 5 个条目。有了上面建议的所有条目,我想要上面提到的所有三个不同分类器的单独列表集(列表名称,例如 cross_val_f1_score_lst_model_01/02/03 等)。下面给出了一个分类器迭代的其余相关代码。
#mean values for all metrics
cross_val_recall_lst.append(recall_score(target_val, validation_preds))
cross_val_accuracy_lst.append(accuracy_score(target_val, validation_preds))
cross_val_precision_lst.append(precision_score(target_val, validation_preds))
cross_val_f1_score_lst.append(f1_score(target_val, validation_preds))
print('Cross validated overall financial loss: {}'.format(np.mean(cross_val_financial_loss_lst)))
print('Cross validated accuracy: {}'.format(np.mean(cross_val_accuracy_lst)))
print('Cross validated recall score: {}'.format(np.mean(cross_val_recall_lst)))
print('Cross validated precision score: {}'.format(np.mean(cross_val_precision_lst)))
print('Cross validated f1_score: {}'.format(np.mean(cross_val_f1_score_lst)))
任何解决方案都将受到高度赞赏。如果我使用了任何不正确的术语,请随意。
解决方案
推荐阅读
- core-bluetooth - RxBluetoothKit - 实现读写协议并自动断开连接
- .net-core - 使用代理的实体框架核心延迟加载不起作用(SQLite)
- python - C++ 中的 Numpy `.view` 函数
- node.js - 当他在客户端(node.js)中进行身份验证时,如何访问服务器中用户的谷歌驱动器?
- c++ - 如果 enable_if 确定 T 是容器,则启用结构?
- sql-server - 如何在 Delphi 10.2 中连接到 SQL Server 数据库之前测试 ADOConnection ConnectionString
- angular - 如何获取 Firebase 实时数据库中添加的最后一项?
- python - 如何在 python 中跨文件使用 tkinter 小部件?
- java - 无法加载 Tomcat 服务器配置 服务器项目已关闭
- python - Python数据预处理:将同一目录下的10000张图片加载到一个变量中?