2017-04-03 4 views
0

クロスバリデーションを1つ残しておきます。しかし、私はエラーの下に取得しています:クロスバリデーションの問題

AttributeError       Traceback (most recent call last) 
<ipython-input-19-f15f1e522706> in <module>() 
     3 loo = LeaveOneOut(num_of_examples) 
     4 #loo.get_n_splits(X_train_std) 
----> 5 for train, test in loo.split(X_train_std): 
     6  print("%s %s" % (train, test)) 

はAttributeError:

from sklearn.cross_validation import train_test_split 
X_train, X_test, y_train, y_test = 
train_test_split(X, y, test_size=0.3, random_state=0) 

from sklearn.preprocessing import StandardScaler 
sc = StandardScaler() 
sc.fit(X_train) 
X_train_std = sc.transform(X_train) 
X_test_std = sc.transform(X_test) 

from sklearn.cross_validation import LeaveOneOut 
num_of_examples = len(X_train_std) 
loo = LeaveOneOut(num_of_examples) 
for train, test in loo.split(X_train_std): 
print("%s %s" % (train, test)) 
+0

(http://scikit-learn.org/stable/modules/generated/sklearn.model_selec 'loo.get_n_splits(X_train)'を使って最初にセットを分割する必要があるようです。 – Julien

+0

完全なエラーメッセージを含めてください。 – DyZ

+0

これは読むのが不可能です。元の質問を編集し、完全なエラーメッセージを含めてください。 – DyZ

答えて

0

私はあなたが使用していることを考える:「LeaveOneOut」オブジェクトが属性を持っていないが、以下のように詳細なコードがある

を「スプリット」 scikit-0.18以下のバージョンを学んで、バージョン0.18のチュートリアルを参考にしてください。

0.18より前のバージョンでは、コンストラクタには、上記のコードで提供されていない必須パラメータnが必要です。したがって、エラー。

を次のようにLeaveOneOutを初期化し、バージョン0.18

  • にscikitは、学ぶ

    編集

    あなたはscikitバージョン> = 0.18を使用している場合は

    エルス
    from sklearn.model_selection import LeaveOneOut 
    for train_index, test_index in loo.split(X): 
        print("%s %s" % (train_index, test_index)) 
        X_train, X_test = X[train_index], X[test_index] 
        y_train, y_test = y[train_index], y[test_index] 
    

    は、バージョンの< 0.18ここでloo.split()が使用されていないことに注意してください(このように反復を使用し、 loo)が直接使用される:DOCから

    from sklearn.cross_validation import LeaveOneOut 
    loo = LeaveOneOut(num_of_examples) 
    for train_index, test_index in loo: 
        print("%s %s" % (train_index, test_index)) 
        X_train, X_test = X[train_index], X[test_index] 
        y_train, y_test = y[train_index], y[test_index] 
    
  • +0

    私は以前のエラーを削除するために必要な変更を行いましたが、私はそれを解決する方法がわからない別のエラーがあります。私は私の初期のコードをもう一度変更しました – Shelly

    +0

    @Shellyあなたはscikitのどのバージョンを使用していますか?私はその変化を反映する答えを編集しました。 –

    +0

    Kumer:sklearn.model_selectionからimport LeaveOneOut私はこのエラーを受け取ります:ImportError:私のscikitバージョンを参照する 'sklearn.model_selection'という名前のモジュールが0.18を超えていません。私の初期コードのエラーは、 "sklearn.cross_validation import LeaveOneOut"を使用しているためではありません。 – Shelly

    関連する問題