相同的Python代码,不同的性能

时间:2016-10-04 18:29:00

标签: python python-2.7 numpy scikit-learn kdtree

我用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%。我调用相同的函数并使用相同的数据。如果有人澄清,我将非常感激。感谢

1 个答案:

答案 0 :(得分:0)

通过在我的函数中定义训练和测试数据作为全局变量来解决问题