1.什么是特征工程
顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。特征工程是指从原始数据转换为特征向量的过程。
2.特征工程作用
在业界广泛流传一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
(1)特征越好,灵活性越强
只要特征选得好,即使是一般的模型(或算法)也能获得很好的性能,因为大多数模型(或算法)在好的数据特征下表现的性能都还不错。好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护。
(2)特征越好,构建的模型越简单
有了好的特征,即便你的参数不是最优的,你的模型性能也能仍然会表现的很nice,所以你就不需要花太多的时间去寻找最有参数,这大大的降低了模型的复杂度,使模型趋于简单。
(3)特征越好,模型的性能越出色
显然,这一点是毫无争议的,我们进行特征工程的最终目的就是提升模型的性能。
3.特征工程流程
3.1 数据预处理
3.1.1 无量纲化
无量纲化使不同规格的数据转换到同一规格。常见的无量纲化方法有标准化和区间缩放法。标准化的前提是特征值服从正态分布,标准化后,其转换成标准正态分布。区间缩放法利用了边界值信息,将特征的取值区间缩放到某个特点的范围,例如[0, 1]等。
1)标准化
标准化需要计算特征的均值和标准差,公式表达为:
2)区间缩放法
区间缩放法的思路有多种,常见的一种为利用两个最值进行缩放,公式表达为:
3.1.2 对定量特征二值化
定量特征二值化的核心在于设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0,公式表达如下:
3.1.3 对定性特征哑编码(OneHotEncoder)
对无序离散值进行OneHot编码处理
3.1.4 缺失值处理
对缺失值填写默认值,均值,中位数等处理方法
3.1.5 处理极端离群值
对极端值,如取对数、限制最大最小值等方法
3.1.6 数据变换
常见的数据变换有基于多项式的、基于指数函数的、基于对数函数的。4个特征,度为2的多项式转换公式如下:
3.2 特征变换
3.2.1 特征组合
1)将多个特征进行数值运算
如对特征进行加,减,乘,除
2)特征交叉
对多个特征进行交叉组合,或做交,并,补,笛卡尔集等运算
3.2.2 降维
高维情形下经常会碰到数据样本稀疏、距离计算困难的问题(称为 “维数灾难”),解决方法就是降维。
常用的降维方法有
主成分分析法(PCA)
核化线性降维(KPCA)
主成分回归(PCR)
偏最小二乘回归(PLSR)
萨蒙映射
多维尺度分析法(MDS)
投影寻踪法(PP)
线性判别分析法(LDA)
混合判别分析法(MDA)
二次判别分析法(QDA)
灵活判别分析法(Flexible Discriminant Analysis,FDA
ICA (Independent component analysis,独立成分分析)
3.3 特征选择
当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征:
1) 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
2) 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。
根据特征选择的形式又可以将特征选择方法分为3种:
Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣
3.3.1 Filter过滤法
1) 方差选择法
使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征
2) 相关系数法
使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值。用feature_selection库的SelectKBest类结合相关系数来选择特征的代码如下:
3) 卡方检验
经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:
右侧的X^2代表卡方值,卡方值=[(观测值O-期望值E)/期望值E]所有的组别的累加。
例子:
假设一果农场,今年水果产量记为观察值,往年产量记为期望值,所生成的四格表如上图所示。
计算:
卡方值X^2=(28-20)^2/20+(38-30)^2/30+(34-50)^2/50=10.45
因此卡方值的话是10.45
卡方值再与卡方鉴定表相比较,如果卡方值<鉴定表中值可以得到:
H0:行分类变量与列分类变量无关联
如果卡方值>鉴定表中值可以得到:
H1:行分类变量与列分类变量有关联
4) 互信息法
经典的互信息也是评价定性自变量对定性因变量的相关性的,互信息计算公式如下:
使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大,通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大.
3.3.2 Wrapper包装法
1) 递归特征消除法
递归消除特征法使用一个基模型(这个模型可以是 lr 或者 decisionTree)来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练,这样在每一轮训练过程中消除掉一些权重较小的特征直至训练结束
3.3.3 Embedded嵌入式法
1) 基于惩罚项的特征选择法
使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维
L1正则化/Lasso
L2正则化/Ridge regression
L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为|w||1
L2正则化是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||2
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合
2) 基于树模型的特征选择法
树模型中GBDT也可用来作为基模型进行特征选择
4.总结
良好特征的特点包括
避免很少使用的离散特征值:良好的特征值应该在数据集中出现大约 5 次以上
最好具有清晰明确的含义
良好的浮点特征不包含超出范围的异常断点或 “神奇” 的值
特征的定义不应随时间发生变化
参考文献:
https://blog.csdn.net/jerry81333/article/details/52747892
http://www.cnblogs.com/jasonfreak/p/5448385.html
https://feisky.xyz/machine-learning/basic/feature-engineering.html
https://blog.csdn.net/Dream_angel_Z/article/details/49388733
https://www.deeplearn.me/1470.html
- 大小: 888 Bytes
- 大小: 1.7 KB
- 大小: 2.3 KB
- 大小: 4.3 KB
- 大小: 7.1 KB
- 大小: 2.6 KB
- 大小: 38.5 KB
- 大小: 134.6 KB
分享到:
相关推荐
特征工程是机器学习领域至关重要的一个环节,它直接影响着模型的性能和预测能力。《精通特征工程》一书深入探讨了如何有效地构建、选择和优化用于机器学习模型的特征。这本书提供了丰富的示例代码,帮助读者理解并...
特征工程是机器学习中的一个关键过程,它涉及从原始数据中提取和选择那些对预测模型最有用的信息。理解特征工程的重要性、方法和应用场景对于构建有效的机器学习模型至关重要。 首先,特征工程可以被定义为提取原始...
特征工程是机器学习领域中的核心环节,其重要性不言而喻。优秀的特征工程能够显著提升模型预测的准确性和稳定性,使模型更好地理解和捕获数据的内在规律。Dipanjan Sarkar的数据科学文章系列深入探讨了这个主题,...
本文来自于网络,本文主要介绍了特征工程,以及一些常见的特征工程的方法,以及自然语言处理的特征工程,希望对您的学习有所帮助。协同过滤CollaborativeFiltering特征工程FeatureEngineering推荐系统实战注意点首先...
在大数据分析领域中,特征工程是一项关键的技术环节,它对数据质量和模型结果具有直接影响。特征工程是指在数据建模和大数据分析过程中,对数据进行一系列转换,从而挖掘出对预测任务有帮助的信息。在这一过程中,...
### 特征工程选择概述 特征工程在机器学习领域占据着至关重要的地位,它通过一系列技术手段从原始数据中提取并构建对模型有益的新特征,从而显著提高模型的表现能力。特征工程的质量直接决定了机器学习项目的成败,...
特征工程是机器学习中至关重要的步骤,它直接影响到模型的性能和预测能力。这个名为“特征工程代码包”的资源包含了实现高效特征工程所需的关键代码,适用于数据预处理、降维和模型训练等环节。让我们逐一深入探讨...
特征工程是数据科学和机器学习领域中的核心环节,它直接影响模型的性能和预测能力。"特征工程.rar" 文件包显然提供了关于这一主题的资源,包括文档(可能有中文和英文两个版本)以及与之相关的代码文件。让我们深入...
随着数据规模的急剧增长,如何有效地从原始数据中提取出有助于模型训练的特征变得尤为重要,即特征工程(Feature Engineering)的地位凸显。特征工程主要负责从原始数据中提取特征并将其转换为适合机器学习模型处理...
特征工程是机器学习中的关键步骤,它涉及到将原始数据转换为更有用的、与问题相关的表示,以便机器学习算法能够更好地理解和预测模式。在“Python-译面向机器学习的特征工程”中,我们将深入探讨这一主题,特别是...
特征工程在IT领域,尤其是深度学习和机器学习中扮演着至关重要的角色。它涉及将原始数据转换成更有意义、更能反映问题本质的形式。本文主要探讨了两种特征工程的方法:一种是固定参数的网络架构,如PCANet,另一种是...
在机器学习领域,数据预处理和特征工程是至关重要的步骤,它们对模型的性能和准确性起着决定性作用。sklearn库提供了丰富的工具用于这两部分的工作。以下是对这两个主题的详细探讨。 首先,数据预处理的目标是将...
特征工程是指从原始数据中提取和构建有用特征的过程,对于提高机器学习模型的性能至关重要。 #### 数据预处理 - **数据清洗**:去除不可信的样本或处理缺失值。 - **数据采样**:平衡不同类别的样本数量,使用上...
特征工程在数据挖掘中扮演着至关重要的角色,它是将原始数据转化为模型可理解的形式的关键步骤。在二手车交易价格预测的场景中,特征工程可以帮助我们更好地理解数据并建立更准确的预测模型。本讲座由Datawhale成员...
特征工程是机器学习和数据分析过程中的重要环节,它涉及到数据预处理、特征选择以及特征转换等多个方面。在处理数据时,经常会遇到唯一属性,比如数据库中的自增主键,这类属性通常并不携带有关样本本质特征的信息,...
特征工程和XGBoost调优是机器学习领域中至关重要的环节,尤其对于初学者和希望提升模型性能的开发者而言。本案例将详细讲解这两个主题,帮助你深入理解如何通过优化特征和模型参数来提高预测准确性和模型泛化能力。 ...
数据准备和特征工程是机器学习流程中的核心环节,它们直接影响模型的性能和预测能力。在这个过程中,我们将深入探讨如何利用百度飞桨(PaddlePaddle)这一深度学习框架进行高效的数据预处理和特征工程。 首先,我们...
### 201905—机器学习之特征工程—六天课程知识总结 #### 第一天:特征归一化 **一、特征归一化的概念** - **结构化数据**:这种类型的数据可以视为关系型数据库中的表,其中每一列都有明确的定义,每一行代表一...