2016-10-04 72 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

問題通過定義培訓和在我的功能測試數據爲全局變量解決