У меня очень несбалансированный набор данных, и я хотел бы выполнить SMOTE, чтобы сбалансировать набор данных и перекрестную проверку, чтобы измерить точность.Однако в большинстве существующих учебных пособий для выполнения SMOTE используется только одна итерация training
и testing
.
Поэтому я хотел бы знать правильную процедуру выполнения SMOTE с помощью перекрестной проверки.
Мой текущий код выглядит следующим образом.Однако, как уже упоминалось выше, он использует только одну итерацию.
from imblearn.over_sampling import SMOTE
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
sm = SMOTE(random_state=2)
X_train_res, y_train_res = sm.fit_sample(X_train, y_train.ravel())
clf_rf = RandomForestClassifier(n_estimators=25, random_state=12)
clf_rf.fit(x_train_res, y_train_res)
Я с удовольствием предоставлю более подробную информацию, если это необходимо.