2016-06-20 151 views
-1

我試圖在字典中存儲與相應的test_size相關的培訓和測試錯誤,因爲我想創建一個測試/培訓錯誤數字。不幸的是,for循環無法正常工作。有誰知道我做錯了什麼? (而不是將它們存儲在熊貓df中的字典也可以)。創建字典的循環

array = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] 
dicto = {} 

for i in array: 
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = i) 
    clf.fit(X_train,y_train) 
    test = clf.score(X_test, y_test) 
    train = clf.score(X_train, y_train) 
    dicto[i, test, train] 

print(dicto) 

我得到以下錯誤:

KeyError: (0.1, 0.89473684210526316, 0.91176470588235292)

+1

你想要你的鍵和值是什麼? – Bahrom

+0

我想我得到了一個keyerror,因爲我請求了一個不在字典中的字典對象。 – Papie

+3

發佈我們可以用預期的輸入和輸出運行的最小腳本。你正在查找一個不存在的密鑰。 – Bahrom

回答

2

你永遠分配在字典中的值:

dicto[i, test, train] # This is trying to lookup a key of (i, test, train), which doesn't exist yet. 

試試這個:

dicto[i] = (test, train) # map test and train variables to test_size, which is i 
+0

在閱讀字典時,應該根據測試大小來查找,所以沿着'dicto [test_size]' – Bahrom

+0

的順序,感謝Bahrom!這對我有用:)你幫了我很多 – Papie

+0

不用擔心,gl! – Bahrom

0

是那你想要什麼?

dicto[i] = test, train 
+0

我這麼認爲!你用你寫的這行代碼在字典中添加了什麼? – Papie