我构建了一个显示单个模型的一些评估指标的函数,现在我想将此函数应用于我估计的模型池。
旧函数的输入是:
OldFunction(code: str, x, X_train: np.array, X_test: np.array, X:pd.DataFrame)
Run Code Online (Sandbox Code Playgroud)
在哪里:
code 是一个字符串,用于创建数据框的列名
x 是模型名称
X_train 和 X_test 是数据分割器的 np.arrays
X 是整个数据的数据框
为了估计模型池的指标,我尝试通过在函数中添加循环并将模型放入列表中来修改函数。
但这不起作用。
出现问题是因为我无法迭代模型列表,那么我有什么选择呢?你有什么想法吗?
我将新功能留在下面。
import numpy as np
import pandas as pd
from sklearn.metrics import roc_curve, auc
from sklearn.metrics import accuracy_score, recall_score, precision_score
from sklearn.model_selection import cross_val_score
def displaymetrics(code: list, models: list, X_train: np.array, X_test: np.array, X: pd.DataFrame):
for i in models:
y_score = models[i].fit(X_train, y_train).decision_function(X_test)
fpr, tpr, _ = roc_curve(y_test, y_score)
roc_auc = auc(fpr, tpr)
# Traditional …Run Code Online (Sandbox Code Playgroud) python function machine-learning scikit-learn logistic-regression