上采样:
有两类样本(A,B),A>B数量,若n*B=A(约等于),则B样本数据变为:n*B,A样本数据为:A
def upperSample(df)
df.index=range(len(df))
df_A=df[df['class']=='A']
df_B=df[df['class']=='B']
len_A=len(df_A)
len_B=len(df_B)
index_A=df_A.index
index_B=df_B.index
if len_A==len_B:
return shuffleDF(df)#shuffleDF()为自定义的重排函数,使df中的样本分布打乱
elif len_A>len_B:
x=len_A//len_B
df_B=df.iloc[list(index_B)*x]
df=pd.concat([df_A,df_B],axis=0)
df.index=range(len(df))
return