0
從Python我使用SMOTE算法不平衡學習包:SMOTE算法初始條件
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)
我已經明確設置n_neighbors = 4
。但是,我從上面的代碼中出現以下錯誤:
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
設置不起作用?
錯誤消息說'n_neighbors = 6'。 –
我明白,因爲它說6,所以我把它改爲4(最初沒有設置任何值)。爲什麼手動設置爲4後仍然是6?謝謝 – Edamame
也許你沒有重新運行細胞? –