特征工程

特征工程是指将数据转换为能更好地表示潜在问题地特征,从而提高机器学习性能的一类方法。其步骤大致可分为数据理解、数据清洗、特征构造、特征选择,以及类别极端不平衡时的处理。

数据理解

数据理解阶段的目的是探索数据,了解数据,主要在EDA阶段完成。

  • 定性数据:主要为描述性质。可细分为定类和定序工作。定类即按名称分类的数据,如血型和城市等;定序即数据类型有排序之分,如成绩等级(A、B、C)等。
  • 定量数据:主要为描述数量特征。可分为定距和定比。定距表示数据可以进行加减操作,如温度、日期等;定比表示数据可以进行乘除操作,如价格、重量等。

数据清洗

进行数据清洗的目的是为了提高数据质量,降低算法用错误数据建模的风险。其中包括特征变换、缺失值处理、异常值处理等几个主要步骤。

  • 特征变换:主要变换那些模型无法处理或不适合处理的特征。变换方法有定性变量编码(Label Encoder、Onehot Encoder、Distribution Encoder等)及 标准化和归一化方法(z分数标准化、min-max归一化)
  • 缺失值处理:缺失值会增加不确定性,可能会导致不可靠的输出。在少量样本缺失时,可不进行处理;在大量样本缺失时,可将该特征删除。也可对缺失值进行补全操作(均值/中位数/众数补全、高维映射(如onehot下补全为各位皆为0的一组向量)、模型预测、最邻近补全等)
  • 异常值处理:处理异常值可以采用简单统计(如describe()的统计描述、散点图等)、正态分布的3σ法则箱型图删除截断利用模型进行离群点检测(聚类、K近邻等)
  • 还有如删除无效列、更改dtype、删除列中的字符串、将时间戳从字符串转换为日期格式等处理。

特征构造

特征构造主要是为了增强数据的表达,以及添加先验知识以提高模型能力。

  • 构造统计量特征:有计数、求和、比例、标准差等方法
  • 构造时间特征:有绝对时间、相对时间、节假日、双休日等方法
  • 构造地理信息特征:有分桶等方法
  • 非线性变换:有取对数、平方、根号等变换方法
  • 数据分桶:有等频、等距分桶、best-ks分桶、卡方分桶等
  • 特征组合/特征交叉

类别极端不平衡时的处理

类别极端不平衡指的是数据集中某个特征中来自不同类别的样本数目相差悬殊的情况。可用下列方法进行处理:

  • 扩充数据集(通常不可能做得到)
  • 尝试其他评价指标:AUC等
  • 调整 θ 值
  • 重采样:过采样/欠采样
  • 合成样本:SMOTE
  • 选择其他模型:决策树等
  • 加权少类别的样本错分代价
  • 将大类分解成多个小类
  • 将小类视为异常点,并用异常检测建模
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值