特征工程的简单理解

目录

 

1.样本的采集与清洗

2.特征与处理

3.特征选择

3.1 Filter (过滤法)

3.2 Wrapper (包装法)

3.3 Embedded (嵌入法)

3.4 寻找高级特征

4 降维

参考


1.样本的采集与清洗

在采集数据时,会有极其异常的数据,

(图源:https://www.cnblogs.com/weibao/p/6252280.html

这些数据一般直接舍弃。

但这样列表再删除的工作很繁琐,需要自动化方法:

(1)    结合业务情况进行过滤:比如去除crawler抓取,spam,作弊等数据

(2)    异常点检测采用异常点检测算法对样本进行分析,常用的异常点检测算法包括

  • 偏差检测:聚类、最近邻等
  • 基于统计的异常点检测

例如极差,四分位数间距,均差,标准差等,这种方法适合于挖掘单变量的数值型数据。全距(Range),又称极差,是用来表示统计资料中的变异量数(measures of variation) ,其最大值与最小值之间的差距;四分位距通常是用来构建箱形图,以及对概率分布的简要图表概述。

  • 基于距离的异常点检测

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

  • 基于密度的异常点检测

考察当前点周围密度,可以发现局部异常点,例如LOF算法


2.特征与处理

常见问题与处理方法:

常见问题解决方法关键词
量纲不同特征的规格不一样,不能够放在一起比较。无量纲化可以解决这一问题。

标准化(若特征服从正态分布)、

区间缩放法

存在缺失值(NAN)

通过多种填充方法作填充/删除,具体问题具体分析。

0、众数、预测填充

定性数据不能使用

一般用one-hot编码。one-hot编码
特征不足

尽量采集更多影响因素。


3.特征选择

在数据预处理后,先保存一版,之后需要选择有意义的特征作为输入进行训练。

考虑特征:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。

 根据特征选择的形式,把特征选择方法分为三类:

  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。sklearn中特征的方差过滤法:VarianceThreshold()简述_心事寄于秋的博客-CSDN博客
  • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
  • Embedded:嵌入法,让算法自己决定使用哪些特征的方法,即特征选择和算法训练同时进行。类似于Filter方法,但是是通过训练来确定特征的优劣。

3.1 Filter (过滤法)

a. 方差选择法 (避免无区分度的特征)

        先计算各个特征的方差,根据阈值,选择方差大于阈值的特征。

        建议使用:sklearn中的VarianceThreshold类

sklearn中特征的方差过滤法:VarianceThreshold()简述_心事寄于秋的博客-CSDN博客

b.相关系数法 (避免无关的特征)

        计算各个特征对目标值的相关系数,选择关系比较大的特征。

c. 卡方检验 (其他假设检验方法也行)

        可以检验某个特征分布和输出值分布之间的相关性。得到所有特征的卡方值和显著性水平的临界值(一般为α = 0.05),给定一个卡方阈值,选择卡方较大的特征。

        可以看:卡方检验原理及应用

        建议使用:sklearn中的chi2类

d. 互信息法

        互信息值越大,说明该特征和输出值之间的相关性越大 (没太用过)。

        可以用sklearn中的mutual_info_classif(分类)和mutual_info_regression(回归)计算各个输入特征和输出特征之间的互信息。

3.2 Wrapper (包装法)

        递归特征消除法(RFE),选择一个目标函数来一步步的筛选特征。

        递归消除特征法使用一个机器学习模型来进行多轮训练,每轮训练后,消除若干权值系数的对应的特征,再基于新的特征集进行下一轮训练。在sklearn中,可以使用RFE函数来选择特征。

sklearn学习——递归特征消除法(RFE)-CSDN博客

3.3 Embedded (嵌入法)

        也是在不停做训练,但是使用的是特征全集。

        建议使用:sklearn中,SelectFromModel函数来选择特征。

数据预处理与特征工程:Embedded嵌入法_51CTO博客_数据预处理 特征工程

3.4 寻找高级特征

        用 + - × ÷ 多个特征,找到更合适的特征。比如你不知道一个区域有多少家庭,但知道一个区域的total_bedrooms & total_rooms ,可以用 前者/ 后者,得到bedrooms_per_room 这样一个特征。


4 降维

        不做重点研究,记住有这样的两个方法就行了。

4.1 PCA 主成分分析法

4.2 LDA 线性判别分析法

5* 特征的标准化和归一化

        个人理解,特征的标准化与归一化是在选择完模型后所做的工作,比如基于树模型的可以不做标准化和归一化,但其他一些需要;基于此,个人认为不算是在特征工程这个范围里。

        但是在此引用一个处理方式:

Data Transformation: Standardization vs Normalization - KDnuggets(使用sklearn)

参考

什么是特征工程?如何进行特征工程?-CSDN博客

深度了解特征工程 - 知乎

如何使用sklearn进行数据挖掘_sk learn 数据挖掘-CSDN博客

https://www.cnblogs.com/pinard/p/9032759.html

“1. 特征的来源

2.  选择合适的特征

3.  寻找高级特征”

https://www.cnblogs.com/pinard/p/9061549.html

“1. 缺失值处理

2. 特殊的特征处理

3. 离散特征的连续化 (定性特征定量化)

4. 离散特征的离散化 (定量特征分组)

5. 连续特征的离散化 (定量特征分组)

https://www.cnblogs.com/pinard/p/9093890.html

“1. 特征的标准化和归一化

2. 异常特征样本清洗

3.  处理不平衡数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值