在python中,如何在一个变量中存储多个值?

2024-06-01 09:04:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个10 x 10分层洗牌分割交叉验证。 正如你在我的代码中看到的,最后我得到了10个结果。我要这10个结果的平均值。所以我添加了一个变量:xSSSmean。但这个在每个循环中都会改变。所以最后它会存储las值。那么,我怎样才能让它存储这10个值,然后把它们的平均值打印出来呢?你知道吗

############10x10 SSS##################################
from sklearn.cross_validation import StratifiedShuffleSplit
for i in range(10):
    sss = StratifiedShuffleSplit(y, 10, test_size=0.1, random_state=0)
    scoresSSS = cross_validation.cross_val_score(clf, x, y , cv=sss)
    print("Accuracy x fold SSS_RF: %0.2f (+/- %0.2f)" % (scoresSSS.mean(), scoresSSS.std()* 2))
    xSSSmean = "%0.2f" % scoresSSS.mean()

print (xSSSmean.mean)



Accuracy x fold SSS_RF: 0.95 (+/- 0.10)
Accuracy x fold SSS_RF: 0.93 (+/- 0.15)
Accuracy x fold SSS_RF: 0.96 (+/- 0.09)
Accuracy x fold SSS_RF: 0.93 (+/- 0.12)
Accuracy x fold SSS_RF: 0.94 (+/- 0.11)
Accuracy x fold SSS_RF: 0.94 (+/- 0.14)
Accuracy x fold SSS_RF: 0.93 (+/- 0.15)
Accuracy x fold SSS_RF: 0.94 (+/- 0.13)
Accuracy x fold SSS_RF: 0.94 (+/- 0.09)
Accuracy x fold SSS_RF: 0.95 (+/- 0.10)
0.95

Tags: 分层foldmean交叉平均值validationprintrf
1条回答
网友
1楼 · 发布于 2024-06-01 09:04:54
xSSSmean = []   #I create an empty list
for i in range(10):
    sss = StratifiedShuffleSplit(y, 10, test_size=0.1, random_state=0)
    scoresSSS = cross_validation.cross_val_score(clf, x, y , cv=sss)
    print("Accuracy x fold SSS_RF: %0.2f (+/- %0.2f)" % (scoresSSS.mean(), scoresSSS.std()* 2)) #2 decimales
    xSSSmean.append(scoresSSS.mean()) #I fill the list with the "scoresSSS.mean" values


print(np.mean(xSSSmean))  #I get the average of the xSSSmean list.

相关问题 更多 >