机器学习项目中特征工程大体流程

目录

1 特征工程定义

2 特征工程流程步骤

2.1 数据获取

2.2 特征理解

2.3 特征改进

数据清洗

数据编码

2.4 特征选择

基于统计的特征选择

基于模型的特征选择

2.5 特征转换 

主成分分析(PCA)

线性判别分析(LDA )

非线性变换


        在数据科学项目中,数据遵循“garbage in, garbage out”,用不好或不对的数据做分析,会产生不好或无用的结论。数据和特征决定了模型精度的上限,算法只是不断趋于这个上限。项目中70%的时间花在特征工程上。

1 特征工程定义

特征工程(Feature Engineering)是将原始数据转化成能更好表达问题本质的特征的过程,使得运用特征后的模型提升预测精度。

特征工程的目的是对原始数据进行选择、分解或聚合,发现对因变量Y有重要作用的自变量X,以更好的表达问题本质。

特征工程的重要性为:特征越好,灵活性越强,构造的模型越简单,模型精度表现越出色。好的特征使一般算法也能获得很好的精度评估,允许选择简单的模型,不需要花太多时间寻找最优参数,降低模型复杂度,并能提升模型精度评估。

2 特征工程流程步骤

数据科学项目常见流程如下:

 其中蓝色框为特征工程步骤。

2.1 数据获取

确定特征使用方案:

1)基于业务理解和业务目标,尽可能找出对因变量有影响的所有自变量。

2)数据可用性评估

        获取难度

        覆盖率

        准确率

确定特征获取方案:

1)获取途径

       如何获取特征(接口调用/github下载等)

       如何存储(数据库/csv/txt/dataframe等)

2.2 特征理解

获取数据后对数据特征进行分析描述、统计、理解和改进:

1)数据是结构数据还是非结构数据

2)数据字段的类型:数值型,分类型,顺序型

3)探索式数据分析

        - 描述性统计: 不同值个数,空值个数,空值比例,分布形状,最大值,最小值,平均值,中值,标准差,离群值,skew,集中情况,离中情况,分类数据的类型比例等

        - 数据可视化:图表(饼图,条形图,直方图,散点图等)

2.3 特征改进

数据清洗

错误值,重复值,空值,离群值的处理

1)缺失值处理:

 数据量很大而缺失数据很少时,可直接删除缺失值 删除行(实例) 

缺失数据占整个字段所有数据的比例过大(>50%),删除列(字段), 或将整个字段转换成指示变量(Indicator Variable)

其他情况,进行缺失值的填充: 固定值填充, 均值填充,众数填充,用模型自动计算填充(KNN, 随机森林,XGBoost),Imputer,  不填充

2)异常值处理

     - 基于统计的异常值检测:Quartile,  Range,Mean Deviation,Standard Deviation等,适用于单变量的数值型数据。

     - 基于距离的异常值检测: 将数据集中与大多数点之间距离大于某个阈值的点视为异常点,主要使用的距离度量方法有绝对距离(曼哈顿距离)、欧氏距离和马氏距离等方法。

    - 基于密度的异常值检测: 考察当前点周围密度,可发现局部异常点。

3)根据需求对重复值去重

数据编码

数据类型转换,数据标准化(Data Standardization),一般化(Data Generalization),离散化(Data discretization),归一化(Data Normalization) ,二值化(Binarization), 编码分类变量,指数变换等

标准化(Standardization): 也称为z-score standardization,将正态分布的连续变量转化为标准正态分布(均值为0,方差为单位长度),也用于非正态分布的连续变量,数据形状不会变化。

无量纲化:Max-Min, 将连续变量值压缩至 [0,1] 区间。

归一化(Normalization):将样本特征向量转化为单位向量(unit norm),norm一般为L2 norm。

一般化(Generalization):  将复杂分类/连续变量简化,如将复杂的地址简化成东南西北。

离散化(Discretization): 将连续变量离散为分类变量,有等宽装箱法(Equal-Width),等深(等频)装箱法(Equal-Size),特征值装箱法,决策树离散化。

二值化(Binarizer): 基于给定阈值,将连续变量按阈值划分为二值变量。

分类变量编码: one-hot哑变量,  顺序哑变量。

指数变换: log变换后为正态分布,指数变换后为正态分布,Box-Cox变换。

2.4 特征选择

基于统计的特征选择

1) 皮尔逊相关系数(Pearson correlation):测量列之间的线性关系。在[-1, 1 ] 变化,0代表没有线性关系,相关性接近-1或1代表线性关系很强。要求列是正态分布,数据很大时可忽略此要求。

2) 假设检验 : 将“变量之间不存在相关性”作为H_{0},可选择ANOVA或卡方检验(Chi-Square)。

基于模型的特征选择

1)决策树/随机森林: 对基尼系数或熵进行拟合以找到最优特征,适用于分类特征

2)线性模型和正则化: L1范数的正则化称为Lasso正则化,L2范数的正则化称为岭正则化(Ridge),正则化有助于解决多重共线性问题,适用于定量特征

3)SVC: 二元分类特征

2.5 特征转换 

特征选择仅限于从原始列中选择特征,特征转换算法将原始列组合起来,从而构造可以更好描述数据的特征。特征转换使用原始数据集的隐藏结构构造新列,生成一个与原始数据结构不同的数据集。特征转换的原理是生成能捕获数据本质的列,只需要几个就能准确解释数据集。是一种降维手段,将高维数据映射到低维空间。两种主要的特征线性转换方法是PCA和LDA。非线性转换方法有T-SNE等。

主成分分析(PCA)

主成分分析(PCA, Principal Components Analysis )是将有多个相关特征的数据集投影到相关特征较少的坐标系上。这些新的、不相关的特征叫主成分。主成分能替代原始特征空间的坐标系,需要的特征少,捕捉的变化多。主成分会产生新特征,最大化数据的方差。这样每个特征都会解释数据的形状。主成分按可以解释的方差来排序,第一个主成分最能解释数据的方差,第二个其次。

PCA本身是无监督任务,不使用响应列进行投影/转换。

PCA利用了协方差矩阵的特征值分解。PCA也可以在相关矩阵上使用。如果特征的量纲相同,可以使用相关矩阵。量纲不同时,应使用协方差矩阵。一般在缩放数据上使用协方差矩阵。

PCA的过程为:

1)创建数据集的协方差矩阵;

2)计算协方差矩阵的特征值;

3)保留前k个特征值(按特征值降序排列),绘制碎石图确定保留的特征值个数;

4)用保留的特征向量转换为新的数据点。

PCA会消除相关特征。本质上,在特征值分解后,得到的所有主成分都互相垂直,意思是彼此线性无关。很多机器学习和预处理技术会假设特征是相互独立的,用PCA可以确保这个假设。

线性判别分析(LDA )

线性判别分析(LDA, Linear Discriminant Analysis)是特征变换算法,也是有监督分类器。和PCA一样,LDA的目标是提取新坐标系,将原始数据投影到低维空间中。但LDA不会专注于数据的方差,而是优化低维空间,此低维空间在为分类模型查找决策边界时更有用。L DA分类有助于避免过拟合,也会降低计算成本。

LDA会计算类内(within-class)和类间(between-class)散布矩阵的特征值和特征向量,选择分类性能最好的特征,最大化类间距离,最小化类内距离。LDA的步骤为:

1)计算Y变量每个分类的均值向量;

2)计算类内和类间的散布矩阵;

3)计算S_{W}^{-1} S_{B}的特征值和特征向量;

4)降序排列特征值,保留前k个特征向量;

5)使用前几个特征向量将数据投影到新空间;

非线性变换

PCA和LDA都是线性变换(矩阵变换),不适用于非线性特征。对于非线性变换,可用Kernal PCA,Kernal LDA , t-SNE,  LLE等

        

参考引用:

【1】https://blog.csdn.net/sunyaowu315/article/details/83782069

【2】https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing

【3】Feature Engineering Made Easy -- Sinan Ozdemir, Divya Susarla

【4】Feature Engineering For Machine Learning -- Alice Zheng & Amanda Casari

【5】https://blog.csdn.net/u010865478/article/details/82716992

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值