2016-10-04 58 views
-1

我在Python中编写了这段代码,有些东西让我发疯。当我把功能放在同一个代码时,给我不同的结果!这怎么可能?这是一个功能相同的Python代码,不同的性能

def iterateTesting(k): 
    Accuracy = [] 
    for t in range(0,10): 
     train_data,test_data = shuffleAndSplit(data) 
     acurracy = test(train_data,test_data,k) 
     Accuracy.append(acurracy) 
    print ('{0:.2f}% , {1:.2f}').format(np.mean(Accuracy),np.std(Accuracy)) 

data = getData("d.data") 


train_data,test_data = shuffleAndSplit(data) 
Accuracy = [] 
for t in range(0,10): 
    train_data,test_data = shuffleAndSplit(data) 
    acurracy = test(train_data,test_data,1) 
    Accuracy.append(acurracy) 
print ('{0:.2f}% , {1:.2f}').format(np.mean(Accuracy),np.std(Accuracy)) 
iterateTesting(1) 

我从功能上得到大约55%和65%来自主每次我运行代码的主要和相同的代码。我正在调用相同的函数并使用相同的数据。如果有人澄清,我将非常感激。由于

+2

为什么有** 3 **'train_data,TEST_DATA = shuffleAndSplit(数据)'行,如果你重复的代码**两次**? –

+0

尝试在主体中重复整个循环(而不是一次在main中,一次在函数中)并查看是否得到类似的结果。 –

+2

你在设置'shuffleAndSplit'的种子吗? – ayhan

回答

0

问题通过定义培训和在我的功能测试数据为全局变量解决

相关问题