顾亚文
摘要:本文从数值型数据、分类型数据、文本与图像这四大最常见的数据源出发,尝试讲解部分常用特征工程方法,然后介绍了降维和特征选择这两大特征工程主题中的通用方法。本文从特征工程的视角看待机器学习问题,希望读者能更全面的了解机器学习的流程。
关键词:常用特征工程;数据处理;降维;特征选择
中图分类号:TU74 文献标识码:A 文章编号:1007-9416(2020)02-0217-02
0 引言
机器学习中有一句经典的话叫做“特征工程决定了机器学习的上限,而模型和算法只是在逼近这个上限”,可见特征工程地位非常高。然而,特征工程更多是一个实践中发展起来的方法论,很少有中文文章专门描述此问题。本论文以数值型数据、分类型数据、文本和图像四大数据源为例,描述对这些数据的常用特征工程手段,并在最后描述降维与特征选择的常用方法。由于特征工程本身的复杂性,本论文更多针对于方法的作用和其有效的原因,不会对方法的实现过程做细致的讲解,具体的实现手段读者可自行翻阅更加专业的资料。
1 常见数据源中的特征工程
1.1 对数值的特征工程
特征工程的目标是将杂乱的源数据转换成合理的数值型特征传给机器学习模型,然而将源数据中的数值直接传给模型是不可取的。
最主要的原因是源数据中数值的尺度跨度较大,而如K均值距离等依赖欧几里得距离、使用梯度下降的主流模型等都极易受尺度的变化影响。针对此问题,可以考虑使用区间量化,如固定宽度分箱或分位数分箱。此外特征缩放或归一化也是一种缓解此问题的方法。
另一方面,一般来讲大多数传统模型都更偏向于正态分布的输入,而在现实生活中,重尾分布可能更加常见。针对于此,常用的手段有指数变换,其中最常用的是Box-Cox变换。
单个特征的表达能力有限,传统的模型无法自行对特征进行组合,所以交互特征是一种常用的简单模型堆叠方法,比如使用两个特征的乘积组成一个新的特征,将新特征与原特征一并送入模型,可能很大程度上提高最终的结果。后面提到的神经网络作为一种复杂的模型堆叠方法,甚至可以自行提取源数据中的特征。
1.2 对分类变量的特征工程
与数值型编码不同,分类变量由于本身没有大小关系,不能简单的使用实数表示。对分类变量而言,最简单的编码方式是独热编码,除此外,有时会用虚拟编码或效果编码来降低维度。
在企业级应用中有时类别的数目会非常多,比如将某电商平台的每个用户分为一类,此时使用上述编码方式计算量就非常庞大,此时一者可以使用简单的模型如逻辑回归或支持向量机,另一方面可以压缩特征。常用的方式有特征散列化,将每一类映射以特殊的映射方式到一个较小的区间里,然后用一个较小的向量表示原有类。另一种方法是采用分箱计数,不对分类变量进行编码,而是直接计算分类变量的值与要预测的目标变量之间的相关统计量,直接将一个向量压缩为一个实数,然而由于输入与目标变量相关联,存在可能的数据泄漏问题。
分类变量中有一类特殊的偏序回归问题,即每一类之间存在着一种有序关系。对于此类问题,常用的手段是考虑排错序的代價。从特征工程的角度来讲,即对每一类以其代价编码[1]。
1.3 对文本数据的特征工程
对文本提取特征是自然语言处理中的一个基础问题,其发展日新月异,我们在本篇论文只简单介绍一些最基本的对文本的特征工程方法。
元素袋(Bag-of-words)是一个简单有效的启发式方法,可将一个文本文档转换为一个扁平向量,易于模型处理,然而其完全没有考虑语义,所以离正确的文本语义理解还相去甚远。N元词袋是一个简单的改进,消耗更多计算资源的同时也提高了效果。
文本本身有一些固有特性值得考虑:一方面文本中有大量没有实际含义的停用词,这些词可以直接被忽略掉;另一方面高频词可能并不会有什么分类效果,而罕见词可能会增加模型开销并带来重尾分布,因此这两类也可以直接过滤掉;此外,英文单词有大量的时态语态,这些可能对处理的问题都没有什么作用,因此对文本中的词进行词干提取是一个有效的操作。
对元素袋的一个最重要的改进可能是tf-idf方法,其考虑如果某单词出现在很多文档中,可能其意义就不大,而通过特征缩放突出强调有意义的单词。对线性模型来讲,可能消除没有意义的特征,同时加快模型解的收敛速度,另一方面,它对过拟合问题更加敏感。
1.4 对图像的特征工程
图像可能是最受研究的源数据,针对图像的特征工程研究可谓浩浩荡荡。计算机视觉目前仍是最受欢迎的研究方向之一,图像语义的研究目前还在飞速发展中。然而,针对图像分类这一最简单的问题,可能已经定格在SIFT这一类基于梯度的方法和卷积神经网络上了。下面我们简单描述SIFT方法和卷积神经网络。
由于单个像素不携带图像的语义信息,研究者考虑采用图像梯度即相邻像素的差异作为特征,而SIFT方法是其中集大成者,在这之后的方法多数只是对其在效率上的改进。SIFT算法的实质是在不同的尺度空间上查找关键点,并计算出关键点的方向。其主要分为四步:尺度空间极值检测、关键点定位、关键点方向确定、关键点特征描述。
然而,手动提取的特征可能依旧无法与机器自动提取特征相比,卷积神经网络作为现有分类准确率最高的方法,在有大量训练样本的情况下,是更优秀的特征提取方法。然而,由于现实中大量的训练样本并不常见,所以SIFT特征仍最为常用。然而,近年的研究表明,在超大数据库[2]上训练的神经网络模型具有较好的普适性,据此进一步衍生出了如无监督神经网络图像检索等方法[3]。
2 降维与特征选择
在特征工程中有一些通用的方法,几乎在任何机器学习问题上都可以考虑能否一试,其中最重要的两类就是降维和特征选择,下面我们对其做简要的描述。
2.1 降維
针对线性数据,常用的降维方式是主成分分析(PCA)。众所周知,任意矩阵都可以进行奇异值分解,截断奇异值分解是矩阵在弗罗贝尼乌斯范数意义下的最优近似。主成分分析可以借助奇异值分解完成,其核心就是使用少数不相关的变量来代替相关的变量,用来表示数据,并且要求能够保存数据中的大部分信息。
对非线性数据,主成分分析不能很好的映射。通常来说,我们将图片、音频等信息看作一个低维流形,由于流形间相近的元素可以近似看作一个平面,此时可以通过聚类[4]来进行降维,将一个流形切割成多个自平面,继而达到降维的效果。最常用的聚类方法是K-means方法。由于K-means方法固有的一些缺陷,在其后的研究者对其提出很多改进措施,比较有效的方法有X-means,K-means++,K-MC 2[5]等。
2.2 特征选择
特征选择是一个对现有特征进行改进的方法。对一堆杂乱的源数据,研究人员基于领域知识或者直觉提取出一些有效的特征,然而这些特征可能会互相冗余或者部分特征可能毫无作用,此时就需要对现有特征进行特征选择。
常用的特征选择方式有三类。第一类是最简单的过滤式方法:通过某个判断标准,如皮尔逊相关系数[6]或互信息等,对每一个特征进行排序,将得分较差的变量剔除掉。这样做很节省计算资源,然而很可能将有用的变量一并剔除掉了。第二类方法是打包方法:对整个集合作为整体进行评估,然后按照贪心的方式逐步剔除集合中的元素。也可以从空集出发按照贪心方式逐步扩充。这样考虑到了特征与特征间的关联性,但当观测数据较少时容易过拟合,而当特征数量较多时,计算的时间较长。最后一种方式是嵌入式方法:其核心思路是让模型自己去选择特征。比如正则化方式,使用L1正则可以得到稀疏结果;又或者深度学习,训练的过程也是提取特征的过程。这种方法可能唯一的缺陷是我们必须要事先知道什么样的选择是好的选择,也就是必须给模型一个正确的方向。
3 结语
本篇论文简要的描述了一些最常用的基础特征工程方法,新接触此领域的读者可以借助于本论文的分析了解此领域,也可以借助于参考文献等信息详细的了解本论文所提及的各种方法。就如文章开始所说的那样,特征工程是一个实践中发展出来的方法论,本文所涉及到的内容仅为本领域中最基础的部分,在面对一个具体问题时,除了这些常用的方法,领域知识和反复的尝试可能更是必不可少的。
参考文献
[1] Diaz R,Marathe A.Soft Labels for Ordinal Regression[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2019:4738-4747.
[2] Krizhevsky A,Sutskever I,Hinton G E. Imagenet classification with deep convolutional neural networks[C].Advances in neural information processing systems,2012:1097-1105.
[3] Xu J,Shi C,Qi C,et al.Unsupervised part-based weighting aggregation of deep convolutional features for image retrieval[C].Thirty-Second AAAI Conference on Artificial Intelligence,2018.
[4] Jain A K.Data clustering:50 years beyond K-means[J].Pattern recognition letters,2010,31(8):651-666.
[5] Bachem O,Lucic M,Hassani S H,et al.Approximate k-means++ in sublinear time[C].Thirtieth AAAI Conference on Artificial Intelligence,2016.
[6] Benesty J,Chen J,Huang Y,et al.:Pearson correlation coefficient[M].Noise reduction in speech processing:Springer,2009:1-4.
A Preliminary Analysis of Basic Feature Engineering
GU Ya-wen
(Jinken College of Technolog, Institute of Information Engineering and Digitial Art, Nanjing Jiangsu 211156)
Abstract:Starting from the four most common data sources of numerical data, categorized data, text and image, this paper attempts to explain some common feature engineering methods, and then introduces the general methods of dimension reduction and feature selection. This paper describes machine learning from the perspective of feature engineering, hoping that readers can have a more comprehensive understanding of the process of machine learning.
Key words:commonly used feature engineering; data processing; dimension reduction; feature selection