2022 CCF BDCI 返乡发展人群预测 微弱提升(特征离散化)

0 序言

本文是基于2022 CCF BDCI 返乡发展人群预测 [0.9117+]做的进一步优化提升,虽然没有什么很大的提升空间,但是还是共享给大家,希望能给大家一些思路。

这次特征工程提交后的A榜结果为:0.91195301485

1 特征工程思路

特征离散化+特征交叉

主要思路来源于Feature Engineering for Numeric Variables

具体的特征工程代码如下:

# 离散化            
all_f = [f'f{idx}' for idx in range(1, 47) if idx != 3]
for df in [train_data, test_data]:
    for col in all_f:
        df[f'{col}_log'] = df[col].apply(lambda x: int(np.log(x)) if x > 0 else 0)
# 特征交叉        
log_f = [f'f{idx}_log' for idx in range(1, 47) if idx != 3]
for df in [train_data, test_data]:
    for i in range(len(log_f)):
        for j in range(i + 1, len(log_f)):
            df[f'{log_f[i]}_{log_f[j]}'] = df[log_f[i]]*10000 + df[log_f[j]]

其实就是将数值特征进行 l o g log log取值后进行离散化,然后特征两两进行特征交叉,这里的特征交叉,我采用高低位的形式,即 x ∗ 10000 + y x*10000+y x10000+y,其他特征交叉方式也是一样可以的。

3 参考代码

由于之前很多人提及我之前的不能复现,所以本次提供了完整的代码,方便大家复现。

代码地址:特征离散化[0.91195301485].ipynb

你可能感兴趣的:(Competition,python,开发语言,数据挖掘)