特征工程

一、结构化数据,看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型、类别型两种类型,每一行数据代表一个样本的信息

二、非结构化数据,包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清洗的类别定义,而且每条数据的大小各不相同

1、特征归一化

  对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内,常用的方法有

(1)线性函数归一化,对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。(原始数据-数据最小值)/(数据最大值-数据最小值)

(2)零均值归一化,将原始数据映射到均值为0、标准差为1 的分布上。(原始数据-原始特征均值)/原始特征标准差

数据归一化并不是万能的,实际应用中,通过梯度下降法求解的模型通常需要归一化的,包括线性回归,逻辑回归,支持向量机,神经网络等模型。但对于决策树模型规则并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征X的信息增益比,而信息增益比和特征是否经过归一化无关。

  对类别型特征归一化

(1)序号编码,处理类别间有大小关系的数据,比如成绩,低、中、高三挡分为,并且存在高>中>低的排序关系

(2)独热编码,处理类别间没有大小关系的特征,比如血型,泰坦尼克号的港口,分为A、B、AB、O血型,这种编码把血型变为一个四维稀疏性向,A血型表示(1,0,0,0),B血型表示(0,1,0,0),AB型表示(0,0,1,0),O型表示(0,0,0,1)。对于类别比较多的情况注意,使用稀疏向量来节约空间。在独热编码下,只有某一维取1,其他维都去0,配合特征选择来降低维度,高纬度特征会带来一下问题,一是在K近邻算法中,高纬度下两个点之间的距离很难得到有效的衡量,而是在逻辑回归中,参数的数量会随着维度的增加而增加,容易引起过拟合问题,三十通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度。

(3)二进制编码,先用序号给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。

其他编码方法:

  高维度组合特征的处理,在维度上选择不同特征

  文本表示模型

 

posted @ 2019-02-26 13:37  缄默1996  阅读(113)  评论(0编辑  收藏  举报