我有两个在我的函数之外创建的列表。在这个被多次调用的函数内部,这两个列表被扩展了。问题是在我完成计算后,这两个列表都是空的。这是我正在使用的代码:
true_classes = []
predicted_classes = []
def report_cv(y_true, y_pred):
true_classes.extend(y_true)
predicted_classes.extend(y_pred)
return accuracy_score(y_true, y_pred)
cv = StratifiedKFold(n_splits=5, shuffle=True)
rfr = RandomForestClassifier(n_estimators=1000, class_weight='balanced',
n_jobs=-1)
scores = cross_val_score(rfr,
X=data_ml_clean.iloc[:, 2:],
y=data_ml_clean.vDili,
cv=cv, n_jobs=-1,
scoring=make_scorer(report_cv))
print(classification_report(true_classes, predicted_classes))
我不明白为什么它们不被视为全局变量。在函数内部添加global true_classes没有帮助。