#判断正样本比例,及样本均衡
import math
zongliang = len(train_data)
zhen_1 = train_data['target'].sum()
zheng_ratio = zhen_1/zongliang
#放量高中低
zhen_2 = math.ceil(zongliang*0.3+1)
p_zong = np.where(zheng_ratio<0.3,zhen_2,zhen_1)
#n_zong = np.where(zheng_ratio>0.7,zhen_2,zhen_1)
#解决样本不均衡问题,大比小为10:3
from imblearn.over_sampling import RandomOverSampler
# ratio = {0:p_zong,1:(len(train_data)-p_zong+1)}#这里的数字每天都不一样,最好先统计一下
ratio = {1:p_zong,0:(zongliang-zhen_1)}#这里的数字每天都不一样,最好先统计一下
SMT = RandomOverSampler(sampling_strategy=0.3)
X,y = SMT.fit_resample(X,y)
# y = pd.DataFrame(y)
print('样本量',len(train_data))
print('zheng_raio',zheng_ratio)
print('zhen_1',zhen_1)
print('zhen_2',zhen_2)
print('p_zong',p_zong)
print('ratio',ratio)
过采样的处理方法
最新推荐文章于 2022-07-02 08:16:42 发布