特征工程之降维

真理之言

特征工程决定了机器学习的上限,而算法和模型只是逼近这个上限。

特征工程是什么

模型设计、算法训练之前的所有针对数据的准备工作,都称之为特征工程。

特征工程包含哪些工作

分析任务、获取数据、特征数据处理-异常值、空值、重复值、标准化等、特征处理-衍化、二值化、哑编码、降维等。这个过程中很多环节都要依赖高度的业务理解程度。

降维前面的都不再细说了,该如何已了然于心。至于降维,工作过程中用的最多的还是根据经验人工识别后手动删除或者赋不同权重。其实这是非常有效的方法:二八法则保留黄金特征,往往是最小的成本最大的回报。不过这个对业务能力有很高要求,而且特征数量委实不算多。所以下面主要介绍下如何用技术手段进行特征降维。

特征降维-特征选择、特征提取

特征降维主要分为两个方面:特征选择、特征提取。值得注意的是,很多文章对这两个称谓是不统一的:有的将特征选择称之为特征提取,将特征提取称之为降维或维归约。

降维对象:train数据,不含test数据。

降维作用:消除噪声,优化训练过程,有效消除过拟合。

 

定义

特征选择:FeatureSelection,是指从已有的M个特征中选择N个特征,即返回特征子集。

特征提取:FeatureExtraction,是指利用已有特征集计算出一个抽象程度更高的特征集,创建低维新特征。

呆在原始世界中,只是想对现有的“取其精华,去其糟粕”,这个是所谓特征选择。只是对现有进行筛选。

去到更高层的世界俯瞰原始世界,你会发现很多杂乱无章的物理现象背后暗含的道理是相通的,这时候你想用一个更加普世的理论去解释原先的理论,这个是特征提取要做的事情。

方法

1特征选择:

  1.1 Filter

    1.1.1 方差选择法

    1.1.2 相关系数法

    1.1.3 卡方检验

    1.1.4 互信息法

  1.2 Wrapper

    1.2.1 递归特征消除法

  1.3 Embedded

    1.3.1 基于惩罚项的特征选择法

    1.3.2 基于树模型的特征选择法

1特征提取:

  1.1 主成分分析法(PCA)

  1.2 线性判别分析法(LDA)

  1.3 其他

sklearn对应的技术降维方法

不管是数据处理,还是特征降维,都可以通过sklearn某个类的方法fit_transform完成,fit_transform要不带一个参数:特征矩阵,要不带两个参数:特征矩阵加目标向量。针对技术降维,对应方法如下:

特征选择

所属方式 说明
VarianceThreshold Filter 方差选择法
SelectKBest Filter 可选关联系数、卡方校验、最大信息系数作为得分计算的方法
RFE Wrapper 递归地训练基模型,将权值系数较小的特征从特征集合中消除
SelectFromModel Embedded 训练基模型,选择权值系数较高的特征

特征提取

说明
decomposition PCA 主成分分析法
lda LDA 线性判别分析法

应用顺序

多数情况下先特征选择,后特征提取;不过也可以先特征提取,后特征选择。

注意

降维不是必须的:原特征对结果和时间成本的影响并不大,或者可以接受,就不需要降维了。降维也很耗时的。

我们依仗对业务的理解、工作经验提出了一些特征,但是在模型训练完成后,某些特征可能“身微言轻”——我们认为相关性高的特征并不重要,这时我们便要反思这样的特征提出是否合理;某些特征甚至“南辕北辙”——我们认为正相关的特征结果变成了负相关,造成这种情况很有可能是抽样与整体不相符,导致了过拟合。然而,我们怎么判断先前的假设和最后的结果之间的差异呢?

线性模型通常有含有属性coef_,当系数值大于0时为正相关,当系数值小于0时为负相关;另外一些模型含有属性feature_importances_,表示特征的重要性。根据以上两个属性,便可以与先前假设中的特征的相关性或重要性进行对比了。但是,理想是丰满的,现实是骨感的。经过复杂的特征转换之后,特征矩阵X已不再是原来的样子:哑变量使特征变多了,特征选择使特征变少了,降维使特征映射到另一个维度中。

累觉不爱了吗?如果我们能够将最后的特征与原特征对应起来,那么分析特征的系数和重要性又有了意义。所以,记录下所有特征转换行为是一个有意义的工作。可惜,sklearn暂时没有提供这样的功能。

参考学习:

https://www.cnblogs.com/jasonfreak/p/5448385.html

https://www.cnblogs.com/jasonfreak/p/5448462.html

https://www.cnblogs.com/jasonfreak/p/5619260.html

https://www.cnblogs.com/dyl222/p/11055756.html

https://blog.csdn.net/mechleechan/article/details/87153050

https://wenku.baidu.com/view/188f29af8ad63186bceb19e8b8f67c1cfad6eee5.html?rec_flag=default&sxts=1573283971299例子通俗!!!

原文地址:https://www.cnblogs.com/myshuzhimei/p/12112530.html

时间: 2024-10-08 15:22:01

特征工程之降维的相关文章

机器学习 特征工程之特征选择

概念 首先看一下维基百科中关于特征选择的介绍: 在机器学习和统计学中,特征选择 也被称为变量选择.属性选择 或变量子集选择 .它是指:为了构建模型而选择相关特征(即属性.指标)子集的过程. 在机器学习中,每个特征对于目标类别的影响并不相同,所以需要从特征集中挑选出一组最具统计意义的特征子集,把其他无用数据删掉,达到降维的目的. 特征选择的目标是寻找最优特征子集.特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目

机器学习:特征工程

特征选择直接影响模型灵活性.性能及是否简洁. 好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护. 特征选择 四个过程:产生过程,评价函数,停止准则,验证过程. 目的:过滤特征集合中不重要特征,挑选一组最具统计意义的特征子集,从而达到降维的效果. 选择标准:特征项和类别项之间的相关性(特征重要性). - - -搜索特征子空间的产生过程- - - 搜索的算法分为完全搜索(Complete),启发式搜索(Heuristic), 随机搜索(Random) 3大类. 完全

【特征工程】特征选择与特征学习

http://www.jianshu.com/p/ab697790090f 特征选择与特征学习 在机器学习的具体实践任务中,选择一组具有代表性的特征用于构建模型是非常重要的问题.特征选择通常选择与类别相关性强.且特征彼此间相关性弱的特征子集,具体特征选择算法通过定义合适的子集评价函数来体现.在现实世界中,数据通常是复杂冗余,富有变化的,有必要从原始数据发现有用的特性.人工选取出来的特征依赖人力和专业知识,不利于推广.于是我们需要通过机器来学习和抽取特征,促进特征工程的工作更加快速.有效. 特征选

使用Python做单机特征工程

目录 1 特征工程是什么?2 数据预处理 2.1 无量纲化 2.1.1 标准化 2.1.2 区间缩放法 2.1.3 无量纲化与正则化的区别 2.2 对定量特征二值化 2.3 对定性特征哑编码 2.4 缺失值计算 2.5 数据变换 2.6 回顾3 特征选择 3.1 Filter 3.1.1 方差选择法 3.1.2 相关系数法 3.1.3 卡方检验 3.1.4 互信息法 3.2 Wrapper 3.2.1 递归特征消除法 3.3 Embedded 3.3.1 基于惩罚项的特征选择法 3.3.2 基于

使用sklearn做单机特征工程

目录 1 特征工程是什么?2 数据预处理 2.1 无量纲化 2.1.1 标准化 2.1.2 区间缩放法 2.1.3 标准化与归一化的区别 2.2 对定量特征二值化 2.3 对定性特征哑编码 2.4 缺失值计算 2.5 数据变换 2.6 回顾3 特征选择 3.1 Filter 3.1.1 方差选择法 3.1.2 相关系数法 3.1.3 卡方检验 3.1.4 互信息法 3.2 Wrapper 3.2.1 递归特征消除法 3.3 Embedded 3.3.1 基于惩罚项的特征选择法 3.3.2 基于树

机器学习之(四)特征工程以及特征选择的工程方法

关于特征工程(Feature Engineering),已经是很古老很常见的话题了,坊间常说:"数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已".由此可见,特征工程在机器学习中占有相当重要的地位.在实际应用当中,可以说特征工程是机器学习成功的关键.纵观Kaggle.KDD等国内外大大小小的比赛,每个竞赛的冠军其实并没有用到很高深的算法,大多数都是在特征工程这个环节做出了出色的工作,然后使用一些常见的算法,比如LR,就能得到出色的性能.遗憾的是,在很多的书籍中并没有直接

【特征工程】特征工程技术与方法

引言 在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而,单纯学习机器学习的算法流程,可能仍然不会使用这些算法,尤其是应用到实际问题的时候,常常不知道怎么提取特征来建模. 特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的. 特征工程的重要意义 数据特征会直接影响你使用的预测模型和实现的预测结果.准备和选择的特征越好,则实现的结果越好. 影响预测结果好坏的因素:模型的选择.可用的数据.特征的提取. 优质的特征往往描述了数据的固有结构. 大多数模型都可

评分卡系列(二):特征工程

文章很长,理论和实现都讲的很细,大家可以先收藏,有时间再看. 在上一篇文章中,我们对LendingClub的数据有了一个大致的了解,这次我将带大家把10万多条.145个字段的原始数据一步一步处理成建模所需输入的数据. 我们先按照上次一样导入数据,这里我将逾期15天以上的都当作正类 import pandas as pd import numpy as np import reportgen as rpt import matplotlib.pyplot as plt import seaborn

机器学习 - 特征筛选与降维

特征决定了最优效果的上限,算法与模型只是让效果更逼近这个上限,所以特征工程与选择什么样的特征很重要! 以下是一些特征筛选与降维技巧 # -*- coding:utf-8 -*- import scipy as sc import libsvm_file_process as data_process import numpy as np from minepy import MINE from sklearn.feature_selection import VarianceThreshold