我正在使用 SMOTE 对少数数据集进行过采样。我的代码如下:
from imblearn.over_sampling import SMOTE
X_train, X_test, y_train, y_test = train_test_split(features_coded, labels, test_size=0.2, random_state=42)
sm = SMOTE(random_state=42, sampling_strategy='all')
# also tried the following, same result
# sm = SMOTE(random_state=42, sampling_strategy=0.5)
X_train, y_train = sm.fit_resample(X_train, y_train)
我使用如下语句检查 features_coded、labels、X_train 和 y_train:
features_coded[features_coded.isnull().any(axis=1)]
我很确定它们在过采样之前不包含任何 nan 值。但是,重采样后,X_train 数据帧中有很多 nan 值。
以防万一您想知道:这是我在过采样之前的数据帧(保存为 csv 文件),没有任何遗漏。
这是我过采样后的数据框(保存为 csv 文件),有很多空值!
有什么问题吗?