from bin_method import best_bin as bb
from tool_box import tool
feature_select(data, black_flag="label", processes=None, is_round=False, piece=5, min_interval=2, p_value=0.05, rate=0.05, min_bin_size=50,
not_in_list=["None", "NaN", "NA", "nan", None,
"-999", "-999.0", -999, "-1111", "-1111.0", -1111],
bin_method="top_down", cut_method='cut_ks', combine_method='combine_iv', corr=False, corr_method="pearson", mic=False,
AR=False, gini=False, pearson_chi2=False, likelihood_ratio=False, F_test=False)
计算单一阈值、iv、ks等指标以筛选特征
Parameter Description
---------------------
data : pandas.core.frame.DataFrame
数据集
black_flag : string,(default="label")
y标签列名称
is_round : boolean,(default=False)
是否需要有业务含义的分bin方法
processes : int,(default=None)
进程数量,为"None"时不使用多进程,为None时使用所有可用进程
piece : int,(default=5)
每个特征分bin个数
rate : float,(default=0.05)
每bin最小样本数占比
min_bin_size : int,(default=50)
每bin最小样本数
not_in_list : list,(default=["None", "NaN", "NA", "nan",None, "-999", "-999.0", -999,"-1111","-1111.0",-1111])
空值列表,在列表中的值会被认为空值
bin_method : string,(default="top_down")
分bin方法,可以选择top_down(ks,gini,ig)或者down_top(卡方)或者dp(动规)
cut_method : string,(default="cut_ks")
分bin切分方法,还可以是"cut_gini","cut_ig",只在bin_method="top_down"是生效
combine_method : string,(default="combine_iv")
分bin聚合方法,还可以是"combine_gini","combine_ig",只在bin_method="top_down"是生效
corr : boolean,(default=False)
是否计算相关性
corr_method : string,(default="pearson")
计算相关性方法,仅在corr为True时生效
mic : boolean,(default=False)
是否计算互信息值,这个算起来会有点慢的哦,考虑好是不是要用哦
AR : boolean,(default=False)
是否计算AR值
gini : boolean,(default=False)
是否计算gini值
pearson_chi2 : boolean,(default=False)
是否计算皮尔逊卡方检验的p-value
likelihood_ratio : boolean,(default=False)
是否计算似然比检验的p-value
F_test : boolean,(default=False)
是否计算F检验的p-value
Return
------
index_iv : 一个pandas dataframe 包括了每个特征的变量名,单一阈值和iv