特征工程是:利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。
虽然现在深度学习非常盛行,它可以自动进行特征工程,但是实际工作中往往没有那么多数据量支撑你使用深度学习模型,因此对数据进行特征工程就显得尤为重要了。特征工程包含了Data PreProcessing(数据预处理)、Feature Extraction(特征提取)、Feature Selection(特征选择)和Feature construction(特征构造)等子问题,而数据预处理又包括了数据清洗和特征预处理等子问题,本章内容主要讨论数据预处理的方法及实现。
特征预处理包括无量纲化、特征分桶、统计变换和特征编码等步骤。
1.数值型特征无量纲化
无量纲化使不同规格的数据转换到同一规格。常见的无量纲化方法有标准化和归一化。
1.1数据标准化(Standardization)
标准化的前提是特征值服从正态分布,标准化后,其转换成标准正态分布。基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
1.2数据归一化
数据归一化方法包括MinMax归一化、MaxAbs归一化,都是利用了边界进行区间缩放。
1.3正态分布化(Normalization)
正则化的过程是将每个样本缩放到单位范数(每个样本的范数为1),如果要使用如二次型(点积)或者其它核方法计算两个样本之间的相似性这个方法会很有用。该方法是文本分类和聚类分析中经常使用的向量空间模型(Vector Space Model)的基础。Normalization主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后样本的p-范数(l1-norm,l2-norm)等于1。
2 数值型特征特征分箱(数据离散化)
离散化是数值型特征非常重要的一个处理,其实就是要将数值型数据转化成类别型数据。连续值的取值空间可能是无穷的,为了便于表示和在模型中处理,需要对连续值特征进行离散化处理。
2.1无监督分箱法
无监督分箱法包括:自定义分箱、等距分箱,等频分箱、聚类分箱、二值分箱等。
2.2有监督分箱法
有监督分箱法包括:卡方分箱、最小熵法分箱等