特征工程
特征工程
特征工程是利用数据领域的相关知识来创建能使机器学习达到最佳效果的特征的过程。从数学角度思考,特征工程就是人工地去设计输入变量X。
通常把特征工程看做是一个问题,事实上,在特征工程下面,还有许多子问题,主要包括,特征选择(Feature Selection)、特征提取(Feature Extraction)和特征构造(Feature Construction)。
1.特征选择
从特征开始说起,假设有一个标准的EXCEL表格数据,它的每一行表示的是一个观测样本数据,表格数据中的每一列就是一个特征。在这些特征中,有的特征是信息量丰富的,有的则是无关数据,因此可以通过特征项和类别项之间的相关性来衡量。
实际应用中,常用的方法是使用一些评价指标单独的计算出单个特征跟类别变量之间的关系。如Pearson相关系数,Gini-index(基尼指数),IG(信息增益)。
特征子集的选择方法有:刷选器(filter)、封装器(wrapper)和集成方法(Embeded)。
刷选器:主要侧重于单个特征跟目标变量的相关性。优点是计算时间上较高效,对于过拟合问题也具有较高的鲁棒性。缺点是倾向于选择冗余的特征,因为他们不考虑特征之间的相关性,有可能一个特征的分类能力较差,但特征组合起来会得到不错的效果。常用的有:Person相关系数。
协方差意义:https://blog.csdn.net/GoodShot/article/details/79940438
封装器:其实质上是一个分类器,封装器用选取的特征子集对样本集进行分类,分类的精度作为衡量特征子集好坏的标准,经过比较选出好的特征子集。常用的有逐步回归、向前选择和向后选择。它的优点是考虑了特征和特征之间的关联性,缺点是:当观测数据较少时容易过拟合,而当特征数量较多时,计算时间又会增长。
集成方法:它是学习器自身自主选择特征,例如使用Regularization做特征选择,或者使用决策树思想。其中Random Forest和Gradient boosting本质上就是决策树的思想。
特征选择一般包括产生过程,评价函数,停止准则和验证过程4个部分。
2.特征提取
原则上,特征提取应该在特征选择之前,特征提取的对象是原始数据,它的目的是自动地构建新的特征,将原始特征转化为一组具有明显物理意义或者统计意义或核的特征。比如通过变换特征取值来减少原始数据中某个特征的取值个数。对于表格数据,使用主成分分析来进行特征提取从而创建新的特征。对于图像数据,进行线或者边缘检测。
常用的方法:
PCA(Principal component analysis,主成分分析)
ICA(Independent component analysis,独立成分分析)
LDA(Linear Discriminant Analysis,线性判别分析)
3.特征构建
特征构建指的是从原始数据中人工地构建新的特征,需要我们思考问题的潜在形式和数据结构。一般的你可以使用混合属性或者组合属性来创建新的特征,或者分解原有的特征来创建新的特征。
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
一个机器学习的过程:
-
选择数据:整合数据,将数据规范化一个数据集,收集起来
-
数据预处理:数据格式化,数据清洗,采样等
-
数据转换:这个阶段做特征工程
-
数据建模:建立模型,评估模型并优化。
其他:
特征处理的算法:
特征抽取、特征转换和特征选择
特征抽取算法:
-
TF-IDF(词频-逆向文件频率)
-
word2Vec(词向量化)
包含2种实现方法:CBOW(continuous bag-of-words)和skip-gram。
word2Vec使用用一个向量去表示一个对象,对象可以是单词,句子,文章和用户。然后基于向量相似度去计算对象的相似度,找到相关的对象,发现相关关系,可以用来做分类、聚类,词的相似度计算
-
CountVectorizer(因式分解),旨在将一个文档转为向量,代表LDA.
特征变换算法:(标签和索引的转化)
-
StringIndexer
-
IndexToString
-
OneHotEncoder
-
VectorIndexer
特征选取算法:
1)卡方选择器:一种有监督特征选择方法。