01-特征工程

4.1特征变换

4.1.1离散化

parts = np.array([0,18.5,25,28,100])
types = ["silght","normal","overweight","fat"]
boys["wtype"] = [types[np.where(x<= parts)[0][0]-1] if not np.isnan(x) else "Nan" for x in boys.bmi]

其中parts是设置离散区间,types是区间内取值,最后通过列表生成器构建离散化数据。

列表生成器:在这里插入图片描述步骤1:遍历该列中所有数据
步骤2:若不为空进入第三步
步骤3:找到x小于的离散区间的位置,对应到离散值。

# 按照规则离散化
bins = [0,18.5,25,28,100]
boys['Categories'] = pd.cut(boys['bmi'], bins, 
labels=["silght","normal","overweight","fat"])

1)分箱(等比、等宽),分箱完之后,可以根据平均值、中位数、最大最小值等进行平滑处理。

ages = pd.Series([1,5,10,40,36,12,58,62,77,89,100,18,20,25,30,32]) 
ages_cut = pd.cut(ages, 5 ,labels=[u"婴儿",u"青年",u"中年",u"壮年",u"老年"]) #等宽分箱
z =ages.groupby(ages_cut).mean() #求每个组的平均值
tmp_cmean = [z[x] for x in ages_cut] #用平均值代替

4.1.2标准化

scale=(boys.hgt-boys.hgt.min())/(boys.hgt.max()-boys.hgt.min())

dataframe进行标准化处理,其他标准化方法自定义公式即可。

4.2特征组合

特定领域知识的方法、二元组合、高阶多项式组合。
1)同性质组合:平均值、变异程度、比率、增长率、平均增长率、最大/最小增长率(门诊确证率、跳出率)
2)异性组合:不同量纲的组合(确诊人数/天数)

4.2.2二元组合

对于分类变量、数值变量进行逻辑变换得到新的特征。(插入代码)

4.2.3高阶多项式

也就生成x2,x3等,解决部分非线性的问题

4.3特征评价

特征初选、影响评价、模型法
1)离散变量,若特征占比比较大(90%以上)考虑剔除,而连续变量,一种离散化,按照离散处理,另外就是查看方差,若方差比较小,考虑剔除。
2)影响评价(pearson系数、距离相关系数、单因素方差分析、信息增益、卡方检验、Gini系数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值