2016-06-20 8 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