2016-09-13 7 views
1

背景情報:私はscikit-learnでモデルを開発しています。以下に示すように、私は、別のトレーニングにデータを分割し、sklearn.cross_validationモジュールを使用してセットをテストしています:Python関数内での作業のみをインポートする

def train_test_split(input_data): 
     from sklearn.cross_validation import train_test_split 

     ### STEP 1: Separate y variable and remove from X 
     y = input_data['price'] 
     X = input_data.copy() 
     X.drop('price', axis=1, inplace=True) 

     ### STEP 2: Split into training & test sets 
     X_train, X_test, y_train, y_test =\ 
         train_test_split(X, y, test_size=0.2, random_state=0) 
     return X_train, X_test, y_train, y_test 

私の質問:私は関数の外sklearn.cross_validationモジュールをインポートしようと、

from sklearn.cross_validation import train_test_split 

def train_test_split(input_data): 
     ### STEP 1: Separate y variable and remove from X 
     y = input_data['price'] 
     X = input_data.copy() 
     X.drop('price', axis=1, inplace=True) 

     ### STEP 2: Split into training & test sets 
     X_train, X_test, y_train, y_test =\ 
         train_test_split(X, y, test_size=0.2, random_state=0) 
     return X_train, X_test, y_train, y_test 

エラー:

TypeError: train_test_split() got an unexpected keyword argument 'test_size' 
のようなので、私は次のエラーを取得します3210

何か考えてみませんか?

答えて

4

関数train_test_splitsklear.cross_validationからインポートし、ローカル関数train_test_splitでその名前を上書きしています。

試してみてください。

from sklearn.cross_validation import train_test_split as sk_train_test_split 

def train_test_split(input_data): 
     ### STEP 1: Separate y variable and remove from X 
     y = input_data['price'] 
     X = input_data.copy() 
     X.drop('price', axis=1, inplace=True) 

     ### STEP 2: Split into training & test sets 
     X_train, X_test, y_train, y_test =\ 
         sk_train_test_split(X, y, test_size=0.2, random_state=0) # use the imported function instead of local one 
     return X_train, X_test, y_train, y_test 
+0

LOL!このような小さなエラーと私は把握できませんでした。ありがとう@RedX - それは答えです! –

関連する問題