如何将SMOTE生成的新采样数据单独存储到X2和y2变量中?
提取SMOTE生成的新样本
SMOTE 的 fit_resample 方法返回的 X1 和 y1 包含原始全部样本加上新生成的过采样样本。要单独提取新生成的样本,只需截取超出原始样本数量的部分即可,代码补充如下:
import numpy as np import pandas as pd from imblearn.over_sampling import SMOTE from sklearn.preprocessing import LabelEncoder dataset = pd.read_csv('https://archive.ics.uci.edu/static/public/17/data.csv') X = dataset.iloc[:, 1:-1].values y = dataset.iloc[:, -1].values le = LabelEncoder() y = le.fit_transform(y) smt = SMOTE() X1, y1 = smt.fit_resample(X, y) # 提取SMOTE新生成的样本 original_sample_count = len(X) X2 = X1[original_sample_count:] y2 = y1[original_sample_count:]
说明
original_sample_count获取原始样本的总数量,等于原始特征集X的行数。X2是X1中从原始样本数量位置开始的所有行,对应SMOTE新生成的特征样本。y2是y1中对应位置的标签,对应新生成样本的目标变量。
内容的提问来源于stack exchange,提问作者Imaginary
相关产品推荐
相关产品推荐

