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

Почему есть ** три ** 'train_data, test_data = shuffleAndSplit (данные)' линии, если вы повторили код ** дважды**? –

+0

Попробуйте повторить весь цикл в главном корпусе (а не один раз в главном и один раз в функции) и посмотреть, получите ли вы аналогичные результаты. –

+2

Вы устанавливаете семя для 'shuffleAndSplit'? – ayhan

ответ

0

Проблема решена путем определения обучения и тестирования данных в качестве глобальных переменных в моей функции

Смежные вопросы