簡體   English   中英

如何在 SMOTE(imblearn 模塊)之后提取新添加的行

[英]How can I extract the newly added rows after SMOTE (imblearn module)

是否可以從 imblearn 的 smote function 創建的 pandas dataframe 中提取新添加的行?

我想我想通了。 顯然,它們被附加在 fit_resample 返回的 dataframe 的末尾:

我的目標是“死”

smotez = SMOTENC([10,11], random_state=555, k_neighbors=10)
smote_tomek = SMOTETomek(random_state=555, smote=smotez , n_jobs=-1)  
X_train_new, y_train_new = smote_tomek.fit_resample(X_train, y_train) 
train_data_new = pd.concat([X_train_new.iloc[1:],y_train_new],axis=1)
train_data_new.dropna(inplace=True)
smote_data = train_data_new.iloc[len(train_data)-1:,]
print("Y_train_smote:\n", npunique(smote_data['DIED']),smote_data['DIED'].mean())

如您所見,所有行都是少數 class(“DIED”)

Y_train_smote:[[1 91936]] 1.0

仔細檢查,下面的表達式應該返回 0:

print(len(smote_data) + len(X_train) - len(X_train_new))

0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM