Toad简介
一个可以用作数据探查、特征选择和评分卡模型建模的python工具包。
参考:
https://www.cnblogs.com/cgmcoding/p/14026520.html
https://www.freesion.com/article/2550417274/
1.EDA数据探查
toad.detect() # 高阶版 describe功能
以datafountain中非法集资案例中的数据为例,base_info.csv
import toad
import pandas
base = pd.read_csv(filename)
toad.detect(base)
包含的字段:‘type’, ‘size’, ‘missing’, ‘unique’, ‘mean_or_top1’, ‘std_or_top2’,
‘min_or_top3’, ‘1%_or_top4’, ‘10%_or_top5’, ‘50%_or_bottom5’,
‘75%_or_bottom4’, ‘90%_or_bottom3’, ‘99%_or_bottom2’, ‘max_or_bottom1’
其中,后面几个指标(即 ‘mean_or_top1’, ‘std_or_top2’,‘min_or_top3’, ‘1%_or_top4’, ‘10%_or_top5’, ‘50%_or_bottom5’,‘75%_or_bottom4’, ‘90%_or_bottom3’, ‘99%_or_bottom2’, ‘max_or_bottom1’),分两种情况,如果该列特征为object类型,则该指标则为value_counts()的作用,统计特征的计数,按照频率显示top5和bottom5。如果该列特征为int或者float,则该指标为mean、std、min、1%…的数据分布指标。
2.特征选择
toad.selection.select()
toad提供了一个特征筛选的函数,可以根据特征的缺失比例、iv值、膨胀系数
参考:
https://blog.csdn.net/qq_41341757/article/details/111312591
1) 筛选的指标包括
- 覆盖度 ,即缺失率和零值率。
- 区分度 ,计算特征的IV值。
- 相关性,计算特征的correlation。
说明:
IV值(information value)
案例:计算IV值:
1: 计算每个标签下好人的概率 = p_good = good / good_总计
2:计算每个标签下坏人的概率 = p_bad = bad / bad_总计
3: 计算好人概率和坏人概率的差值 = p_good - p_bad
4: 计算ln(p_good/p_bad)的值。
5: 计算 IV = ln(p_good/p_bad) * (p_good - p_bad)
IV值<0.02,区分度小,0.02<IV<0.5之间区分度大,IV值>0.5表示可以单独作为一个规则条件,而不用建模。
empty:
包括缺失率和零值率
相关性
相关性大的特征,如果可以用另外的特征集合通过线性计算得到,只保留其中对IV值较大的特征。
2) 参数包括
- empty:缺失率上限
- iv:信息量
- corr:相关系数大于阈值,则删除IV小的特征
- return_drop:返回删除特征
- exclude:不参与筛选的变量名
3)举例
example:删除base_info中,iv值小于0.05,空值率大于50%,相关性大于0.8的特征。
selected_data, drop_list = toad.selection.select(train, target="label", empty=0.5, corr=0.7, iv=0.05, return_drop=True)
selected_data为保留下来的dataframe
drop_list为删除的特征: