【发布时间】:2020-01-04 14:32:43
【问题描述】:
我是 Python 新手。我有以下代码sn-p:
kf = KFold(n_splits=5)
averaged_precision_for_t_knn = []
averaged_recall_for_t_knn = []
for t in range(1,6,1):
print(t)
averaged_precision = []
averaged_recall = []
for trainset, testset in kf.split(data):
algo.fit(trainset)
predictions = algo.test(testset)
precision, recall = compute_precision_recall(predictions, t, 4)
# average over all users
averaged_precision.append(sum(precision for precision in precision.values()) / len(precision))
averaged_recall.append(sum(recall for recall in recall.values()) / len(recall))
print(averaged_precision)
print(averaged_recall)
averaged_precision_for_t_knn.append(np.mean(averaged_precision))
averaged_recall_for_t_knn.append(np.mean(averaged_recall))
如果我将这两个列表放在外循环中:
averaged_precision = []
averaged_recall = []
我明白了:
如果我将这两个列表放在外循环中:
averaged_precision = []
averaged_recall = []
我明白了:
当我将这两个列表放入外部循环时,它们在每次迭代后都将自己清空。而如果我将它们放在外循环之外,它们会继续添加值。这是为什么呢?
【问题讨论】:
标签: python