【Python机器学习】特征工程含义、方法、对应函数详解(图文解释)

简介: 【Python机器学习】特征工程含义、方法、对应函数详解(图文解释)

觉得有帮助请点赞关注收藏~~~

特征工程

特征工程的目标是从实例的原始数据中提取出供模型训练的合适特征。在掌握了机器学习的算法之后,特征工程就是最具创造性的活动了。 特征的提取与问题的领域知识密切相关

一般来说,进行特征工程,要先从总体上理解数据,必要时可通过可视化来帮助理解,然后运用领域知识进行分析和联想,处理数据提取出特征。并不是所有提取出来的特征都会对模型预测有正面帮助,还需要通过预测结果来对比分析。

进行特征工程,通常要用到numpy、pandas、sklearn、matplotlib等扩展库。

数据总体分析

得到样本数据后,先要对数据的总体概况进行初步分析。分析数据的总体概况,一般是根据经验进行,没有严格的步骤和程序,内容主要包括查看数据以及数据的维度、属性和类型,对数据进行简要统计,分析数据类别分布等。

对于数值型的特征,数据统计常从平均值、最小值、最大值、标准差、较小值、中值、较大值等等指标入手。对于对象型的类别特征,数据统计常从唯一值个数、众数及其次数等指标入手。

部分对应函数如下

数据预处理

1.独热编码

对独热编码的处理,sklearn在preprocessing包中提供了OneHotEncoder类。深度学习框架也提供了类似处理方法。

2.特征值变换

为了适合算法需要,有时需要对特征值进行某种变换。常用的变换包括平方、开方、取对数和差分运算等,即:

3.特征值分布处理

有些算法对特征的取值分布比较敏感,需要预先对取值的分布进行调整。

如样本的第j个特征x^(j)的均值估计为meanx^(j)=1/m∑_i=1^m▒x_i^(j),方差估计为varx^(j)=1/m∑_i=1^m▒(x_i^(j)−meanx^(j))^2,则x_i^(j)的标准化操作为:

实现标准化操作的有sklearn.preprocessing包的scale()函数和StandardScaler类。

正则化(Normalization)是对样本进行的操作,它先计算每个样本的所有特征值的p范数,然后将该样本中的每个特征除以该范数,其结果是使得每个样本的特征值组成的向量的p范数等于1。范数的计算:

实现正则化操作的有sklearn.preprocessing包的normalize()函数和Normalizer()类。

4.缺失数据处理

有的算法能够自己处理缺失值。

当使用不能处理缺失值的算法时,或者是想自已处理缺失值时,有以下两种方法。一是删除含有缺失的样本或者特征,这种方法会造成信息损失,可能会训练出不合理的模型。二是补全缺失值,这是常用的方法,即用某些值来代替缺失值。补全缺失值的目的是想最大限度地利用数据,以提高预测成功率。

对于补全缺失值,有两种做法。

一种方法是将所有的缺失值都分为一类,相当于将缺失值的这些样本作为一个子集来训练。

另一种方法是所谓的插补(imputation),即用最可能的值来代替缺失值。插补的做法,实际上也是预测,也就是说,是采用机器学习的方法来补全机器学习所需要的样本。

常用的插补方法有:1)均值、众数插补,对于连续型特征,可采用均值来插补缺失数据,对于离散性的特征,可采用众数来插补缺失数据。2)建模预测,利用其它特征值来建模预测缺失的特征值,它的做法与机器学习的方法完全一样,将缺失特征作为待预测的标签,将未缺失的样本划分训练集和验证集并训练模型。3)插值,利用本特征的其它值来建模预测缺失值,常用的方法是拉格朗日插值法和牛顿插值法

在scipy.interpolate模块中提供了插值函数。

异常数据是明显偏离其余值的特征值。异常数据也称为离群点。通过统计分析可以发现离群点。统计分析中,常采用所谓的3σ原则来筛选离群点。3σ原则是正态分布中,与均值超过3倍标准差的值。在正态分布的假设下,距离平均值3σ之外的值出现的概率要小于0.003,属于极个别的小概率事件。

如果是合理的异常值,则不需要处理,可以直接进行训练。如果是不合理的异常值,可删除该值,并按缺失值的处理方法进行处理。

特征选择

1.根据特征取值的变化

如果某个特征取值的方差很小,也就是说该特征的值变化很小,那么可以认为它对标签值的影响很小,因此,必要时可以抛弃该特征。以极端的情况来举例,如果某特征取值的方差为0,那么说明所有样本的该特征的值都相同,显然,该特征对模型建立没有贡献。

2.根据特征与标签的相关性

可将所有样本的某特征的取值看成一个向量。同样也可将所有样本的标签值看成一个向量。因此,可以用向量的相关性指标(协方差、相关系数、相关距离等)来度量特征取值与标签值的相关程度。

条件概率也是体现相关性的指标。通过比较标签取值的概率值以及在某特征条件下标签取值的概率值,可以知道标签与该特征是否独立。

与标签相关性弱的特征可以在必要时不采用。

3.根据不同特征之间的相关性

如果两个特征有强烈的相关性,那么会出现两列系数不固定的情况,即在稳定标签值的情况下,其中一列的系数的升高可以通过另一列系数的降低来弥补,因此会出现差异较大的模型,也称为模型的方差较大。

特征强相关时,应该去掉其中多余的特征。

4.用模型尝试去特征

每次用去掉一个特征剩下的数据去训练模型,可以比较出哪个特征对模型的影响最小,并将其去掉。

5.根据某些算法对特征的打分

有的算法可以分析出特征的重要程度,如决策树和随机森林算法。根据分析结论选择特征即可。

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
5天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
28 1
|
4天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
31 12
|
7天前
|
机器学习/深度学习 搜索推荐 Python
Python特征工程面试:从理论到实践
【4月更文挑战第17天】本文探讨了Python在数据科学面试中的特征工程,涵盖基础概念如特征选择和提取,实战技能如缺失值和异常值处理,以及特定场景应用。强调避免过度依赖单一方法,忽视数据分布和相关性,以及保持特征工程的可解释性。提供代码示例展示了处理缺失值、标准化、特征选择和异常值检测的基本操作。建议结合业务理解,灵活运用多种方法并注重模型解释性。
22 9
|
9天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
19 1
|
10天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
31 7
|
11天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从特征工程到模型调优
【4月更文挑战第16天】 在数据驱动的时代,机器学习已成为解决复杂问题的关键工具。本文旨在分享一套实用的技术流程,帮助读者构建高效的机器学习模型。我们将重点讨论特征工程的重要性、选择合适算法的策略,以及通过交叉验证和网格搜索进行模型调优的方法。文章的目标是为初学者提供一个清晰的指南,同时为有经验的实践者提供一些高级技巧。
|
11天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
16 0
|
17天前
|
机器学习/深度学习 JavaScript 前端开发
机器学习模型部署:使用Python和Vue搭建用户友好的预测界面
【4月更文挑战第10天】本文介绍了如何使用Python和Vue.js构建机器学习模型预测界面。Python作为机器学习的首选语言,结合Vue.js的前端框架,能有效部署模型并提供直观的预测服务。步骤包括:1) 使用Python训练模型并保存;2) 创建Python后端应用提供API接口;3) 利用Vue CLI构建前端项目;4) 设计Vue组件实现用户界面;5) 前后端交互通过HTTP请求;6) 优化用户体验;7) 全面测试并部署。这种技术组合为机器学习模型的实用化提供了高效解决方案,未来有望更加智能和个性化。
|
18天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【4月更文挑战第9天】本文介绍了使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先,简述了机器学习的基本概念和类型。接着,展示了如何安装Python和Scikit-learn,加载与处理数据,选择模型进行训练,以及评估模型性能。通过本文,读者可了解机器学习入门步骤,并借助Python和Scikit-learn开始实践。
|
20天前
|
机器学习/深度学习 数据可视化 算法
【python】Python大豆特征数据分析 [机器学习版一](代码+论文)【独一无二】
【python】Python大豆特征数据分析 [机器学习版一](代码+论文)【独一无二】