#检验一个变量,如果取较多数值的(>=90%),如果较多类和较小类的label分布差异不明显,删除该变量
def Remove_not_obvious(df,col,var_list,label='label'):
'''df:数据样本'''
'''col:检测变量'''
'''label:标签'''
'''vae_list:变量列表'''
df_des=pd.DataFrame(df[col].value_counts()).reset_index().rename(columns={'index':'value',col:'value_num'})
df_des['value_prob']=df_des['value_num']/len(df)
if df_des['value_prob'][0]>.9:
var_90_ratio=df.loc[df[col]==df_des['value'][0],label].mean()
var_10_ratio=df.loc[df[col]!=df_des['value'][0],label].mean()
if 0.8*var_10_ratio<=var_90_ratio <1.2*var_10_ratio:
return True