机器学习学习笔记特征工程(一)

特征工程

特征工程就是将原始数据进行一系列工程处理,去掉原始数据的冗余和错误,为模型提供对求解问题更高效的特征输入。输入数据分为
1.结构化数据:结构化数据可以看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型和类别型两类。每一行(或每一列)代表一个样本的各个特征的信息。
2.非结构化数据:非结构数据主要包括本文、音频、视频、图像等。它们的特点是其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同。

特征归一化

首先为什么我们要进行特征归一化呢?

θ1的取值范围是[0,3],θ2的取值范围是[0,10],如下图左边。机器学习学习笔记特征工程(一)
在学习速率相同的情况下,在学习速率相同的情况下,θ1的更新速度要比θ2慢,需要更多的迭代才能找到最优解。如果将θ1和θ2归一化到相同的数值区间,优化目标的等值图就会变成圆形,x1和x2的更新速度变得更为一致,容易更快地通过梯度下降找到最优值。
在实际应用中,哪些情况需要数据归一化?
通过梯度下降求解的模型通常焊死需要归一化的,例如线性回归、逻辑回归、支持向量机、神经网络模型等。例如决策树是不需要归一化的。
最常用的归一化方法
1.线性函数归一化(Min-Max Scaling)
xnorm=XXminXmaxXmin x_{norm} = {X-X_{min}\over X_{max}-X_{min}}
2.零均值归一化(Z—Score Normalization)
是将原数据映射到均值为0方差为1的分布上。若原数据平均值为u方差为σ
z=Xuσ z = {X-u\over σ}

类别型特征

都有哪些处理类别型特征的方式
1.序号编码
对于有大小关系的类别,比如成绩的高>中>低,可以按序号编码为1,2,3,转换后依旧保持了大小关系。

2.one—hot独热编码
对于没有大小关系的类别变量,采用独热编码的方式比较合适,例如专业物理、政治、数学,可以分别用向量[0,0,1],[0,1,0],[1,0,0]表示。
对于类别较多的特征采用独热编码,需要注意一些问题:
1.采用稀疏向量,可以节省大量空间。
2.在类别比较多时,特征向量的维度会特别大,那么会有一些问题(1)在K邻近算法高维空间下两点的距离难以计算
(2)在逻辑回归中,因为维度过大,所以参数过多,容易造成过拟合。
(3)通常只有部分维度对预测有帮助,所以可以进行特征选择来降低维度。

3.二进制编码
比如上例独热编码的问题,物理、政治、数学,可以用二进制表示,001、010、011.

特征选择

特征选择的原因

1.冗余:特征的相关度太高了,计算浪费计算机的计算资源
2.噪声:会对预测或分类结果造成负面影响

特征选择和降维的区别

1.前者是将对预测和分类帮助不大或造成负面影响的特征剔出,后者是将所有特征综合计算组合构成新特征。
2.SVD或PCA确实也能解决高维降维问题,但并不推荐这么做。

特征选择的方法

1.过滤型
(1)评估单个特征和结果的关系度
(2)用pearson系数互信息,距离相关度
(3)但要注意过滤式的方法没有考虑到特征间的关联关系,所以可能会筛选到有用的关联特征。
2.包裹型
(1)即在完整的特征集合中,选择一个有效的子集
(2)典型的包裹型算法,为递归删除算法。
(3)比如逻辑回归算法中,首先用全部变量跑一个模型,然后根据系数(体现和结果的相关性),删掉5%~10%的弱变量,观察准确率和auc的变化量,反复进行模型的训练和删除弱变量的过程,直至准确率/auc大幅下降。
3.嵌入型
即正则化。
4.使用随机森林进行特征选择
https://blog.csdn.net/u010685891/article/details/50516889?utm_source=blogxgwz2