2021-04-18

智慧海洋 Task 03

 本次task的主要任务是学习如何进行特征工程,从数学上来讲,特征工程是将原始数据空间变换到特征空间,而在新的特征空间中,模型可以更好的学习数据中的规律。特征工程主要包括以下几部分:(1) 探索性数据分析(2)构建数值特征(3)构建类别特征(4)构建时间特征(5)构建文本特征(6)特征提取和特征构造

常见特征工程方法

  1. 异常处理:
    • 通过箱线图(或3-sigma原则)分析删除异常值
    • Box-Cox转换(处理有偏分布)
    • 长尾截断
  2. 特征归一化/表转化
    • 标准化
    • 归一化
    • 针对幂律分布,可以采用公式
      在这里插入图片描述
  3. 数据分箱(又称为数据分桶)
    • 等频分箱
    • 等距分箱
    • Best-KS分箱
    • 卡方分箱
  4. 缺失值处理
    • 不处理(如采用树模型的时候)
    • 删除(缺失数据太多)
    • 插值不全:均值/中位数/众数/建模预测/多重插补/压缩感知/矩阵补全
  5. 特征构造
    • 构造统计量特征:如计数/求和/比例/标准差等
    • 时间特征:如相对时间和绝对时间、节假日等
    • 地理信息:包括分箱、分布编码等
    • 非线性变换:如log/平方/根号等
    • 特征组合
  6. 特征筛选
    • 过滤式:先进行特征选择,然后训练学习器,常见的方法有 Relief/方差选择发/相关系数法/卡方检验法/互信息法
    • 包裹式:直接把最终将要学习的学习器的性能作为特征子集的评价标准,常见的方法有LVM(LasVegas Wrapper法)
    • 嵌入式:结合过滤式和包裹式,学习器训练过程中自动进行了特征选择,常见的有Lasso回归
  7. 降维
    • PCA/LDA/ICA
    • 特征选择也是一种降维

赛题特征工程

如计算各点与某一特定点的距离

分箱特征工程

 一般建立分类模型的时候,需要对连续变量进行离散化处理,特征离散化之后,模型会更稳定,降低了模型过拟合的风险。如在建立申请信用卡评分模型用Logistic作为基模型的时候就需要对连续变量进行离散化,离散化通常采用分箱方法。数据分箱有以下重要性和优势:
(1) 离散特征的增加和减小都很容易,易于模型的快速迭代
(2) 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
(3) 离散化后的特征对于异常数据具有很强的鲁棒性:比如一个特征是age>30为1,否则为0,若未进行离散化,一个异常数据年龄300岁会给模型带来很大的干扰
(4) 逻辑回归属于广义线性回归模型,表达能力受限,单变量离散化为N个之后,每个变量有单独的权重,相当于为模型引入非线性,能够提升模型表达能力,加大模型的拟合
(5) 离散化之后可以进行特征交叉,由M+N个变量变为M*N个,进一步引入非线性,提升表达能力
(6) 特征离散化之后,模型会更稳定,比如若对用户年龄进行离散化,20-30作为一个区间,不会因为用户年龄增长就会变成一个完全不同的人,当然处于区间相邻处的样本会刚好想法,所以怎么划分区间是门学问
(7) 特征离散化之后,起到了简化逻辑回归模型的作用,降低了模型过拟合的风险
(8) 可以将缺失作为独立的一类带入模型
(9) 将所有变量变换到相似的尺度上
 本次组队学习中的分箱特征工程:
(1) 对白天和黑夜进行0/1编码:5-20为白天,其余为黑夜
(2) 根据月份来划分季度:1-3月为第1季度,4-6月为第2季度,7-9月为第3季度,10-12月为第4季度
(3) 对速度进行分箱:v<0.1 return 0;v<0.5 return 1;v < 2.5 return 3;v < 5 return 4…
(4) 对船的方位进行16均分

def add_direction(df):
    df['d16'] = df['d'].apply(lambda x: int((x / 22.5) + 0.5) % 16 if not np.isnan(x) else np.nan)
    return df

(5) 对船的经纬度进行划分并构造小区域

利用DataFrame构造特征

  • 计数特征
  • shift偏移量
  • 统计特征

构造Embedding特征

 统计特征和业务特征中均考虑了数据的整体性,但是难免忽略了数据间的关系。将这些特征想象为一个一个的词汇,并将所有数据的词汇作为一篇文章来考虑,就可以得到一些额外的规律,即特征。

  • word2vec:词嵌入模型,该模型将词汇的编码映射到一个词向量空间中,通过向量空间中的相似度我们可以得到特征之间的相似度,其常用场景由文本聚类、文本分类等NLP场景。在此次天池的航海问题中,我们对相同经纬度上不同的船进行Embedding,就可以得到每个船只的向量,进一步可以得到经常在某些区域工作的船只。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值