Java教程

特征工程(学习笔记总结)

本文主要是介绍特征工程(学习笔记总结),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1、需要哪些数据?

2、数据如何存储?

3、数据清洗(数据预处理)

3.1 文本数据转换为数值型数据 

3.2 缺省值填充 

3.3 哑编码(onehotencoder要求数据类型是数值) 

​ 3.4 二值化

3.5 标准化 

​ 3.6 多项式拓展​​

​ 4、特征选择​

​ 4.1 filter

4.1.1 方差选择法​

4.1.2 相关系数法

​ 4.1.3 卡方检验(要求特征属性非负)--只能用最大最小缩放(0,1)​

4.2 wrapper

  4.2.1递归特征消除法

​  4.3 embeded

4.3.1 基于惩罚项的特征选择

5、降维

5.1 PCA 

5.2 LDA(线性判别)


 

1、需要哪些数据?

1)业务分析:基于对业务规则的理解,尽可能多的找出对因变量影响较大的自变量数据

2)数据可用性评估:数据获取之前,先考虑获取成本;获取到数据之后,使用数据之前,考虑下这个数据是否覆盖了所有情况及数据的可信度。

2、数据如何存储?

3、数据清洗(数据预处理)

样本不均衡:给样本赋予权重   (参数: class_weight 分类)

采样

3.1 文本数据转换为数值型数据 

 

 

 

 

3.2 缺省值填充 

 

3.3 哑编码(onehotencoder要求数据类型是数值) 

 3.4 二值化

1、一般情况下,对每个特征使用不同的阈值进行二值化操作,所以一般我们会拆分几个DataFrame进行二值化操作后,再进行合并。

2、一般情况下,我们对数据进行划分时,不是进行二值化,而是进行多值化(分区化/分桶化):即将一个连续的数据,按照不同的取值范围,分为不同的级别。比如:在一个模型中,根据人的收入判断工作年限,可能会得到因变量的因素其实是区间划分后的收入情况。那么这时候可以基于业务特征,将收入划分为收入等级,比如:1w: 0; 1w-2w: 1; 2w-3w: 2; 3w+ :3(不要对数据做哑码,因为这里的0 1 2 3有不同的等级)

3.5 标准化 

标准化的目的:降低不同特征的不同范围的取值对于模型训练的影响

 3.6 多项式拓展

 4、特征选择

 4.1 filter

4.1.1 方差选择法

4.1.2 相关系数法

 4.1.3 卡方检验(要求特征属性非负)--只能用最大最小缩放(0,1)

4.2 wrapper

  4.2.1递归特征消除法

1)极模型;2)选择几个特征;3)每一次删除几个特征

  4.3 embeded

4.3.1 基于惩罚项的特征选择

4.3.2 基于树模型的特征选择 

5、降维

5.1 PCA 

 

数据0中心化后, (X * X转置) /n 等于协方差矩阵。

矩阵分解 (特征值/奇异值分解+SVD+解齐次/非齐次线性方程组)

5.2 LDA(线性判别)

 

 

使用sklearn做单机特征工程

这篇关于特征工程(学习笔记总结)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!