2016-12-18 4 views
0

私はPythonのアンバランス-学ぶパッケージから打っアルゴリズムを使用しています:私はn_neighbors = 4を明示的に設定している打っアルゴリズムの初期条件

from imblearn.over_sampling import SMOTE 
sm = SMOTE(kind='regular', n_neighbors = 4) 
: 
X_train_resampled, y_train_resampled = sm.fit_sample(X_train, y_train) 


ValueError        Traceback (most recent call last) 
<ipython-input-2-9e9116d71706> in <module>() 
    33 
    34  #try: 
---> 35  X_train_resampled, y_train_resampled = sm.fit_sample(X_train, y_train) 
    36  #except: 
    37  #continue 

/usr/local/lib/python3.4/dist-packages/imblearn/base.py in fit_sample(self, X, y) 
    176   """ 
    177 
--> 178   return self.fit(X, y).sample(X, y) 
    179 
    180  def _validate_ratio(self): 

/usr/local/lib/python3.4/dist-packages/imblearn/base.py in sample(self, X, y) 
    153    self._validate_ratio() 
    154 
--> 155   return self._sample(X, y) 
    156 
    157  def fit_sample(self, X, y): 

/usr/local/lib/python3.4/dist-packages/imblearn/over_sampling/smote.py in _sample(self, X, y) 
    287    nns = self.nearest_neighbour.kneighbors(
    288     X_min, 
--> 289     return_distance=False)[:, 1:] 
    290 
    291    self.logger.debug('Create synthetic samples ...') 

/usr/local/lib/python3.4/dist-packages/sklearn/neighbors/base.py in kneighbors(self, X, n_neighbors, return_distance) 
    341     "Expected n_neighbors <= n_samples, " 
    342     " but n_samples = %d, n_neighbors = %d" % 
--> 343     (train_size, n_neighbors) 
    344   ) 
    345   n_samples, _ = X.shape 

ValueError: Expected n_neighbors <= n_samples, but n_samples = 5, n_neighbors = 6 

任意のアイデアは、なぜn_neighbors = 4の私の設定は動作しません。しかし、私は上記のコードから、次のエラーを得ましたか。

+0

エラーメッセージには、「n_neighbors = 6」と表示されます。 –

+0

私は6と言っているので、それを4に変更します(最初は値を設定していません)。手動で4に設定してもまだ6になるのはなぜですか?ありがとう – Edamame

+0

あなたはセルを再実行しなかったでしょうか? –

答えて

0

正しいパラメータである:

k_neighbors:intまたはオブジェクト、オプション(デフォルト= 5)

INT場合、合成サンプルを構築するために使用する最近傍の数。オブジェクトの場合は、k_neighborsを見つけるためにsklearn.neighbors.base.KNeighborsMixinから継承する見積もりを使用します。

あなたはNN_NEIGHBORSに通知されますが、正確には、kは、k_neighborsです!

メッセージは、がデフォルトのであるためです。

ドキュメントhereをご覧ください。

関連する問題