1.1.2 特征工程的概念

特征工程是机器学习中的重要概念之一。在介绍特征工程之前,我们需要首先介绍机器学习、响应变量、特征、监督式学习、非监督式学习等基础概念。

机器学习:机器学习是通过一系列计算方法(简称“算法”)使计算机具备从大数据中进行学习的能力,主要作用是可以进行预测、降维或者聚类。机器学习的实现过程是,用户将既有数据提供给计算机,计算机基于既有数据使用机器学习算法构建模型,然后将模型推广泛化到新的样本观测值中进行应用。

响应变量:机器学习中被解释、被影响的目标变量,也被称为“目标”,可以理解成统计学或计量经济学中的“因变量”“被解释变量”,在数学公式中常用y来表示。针对大多数机器学习项目,响应变量只有1个,所以此处用的是小写的y

特征:用来解释、影响响应变量的变量,也被称为“预测变量”“属性”等,可以理解成统计学或计量经济学中的“因子(离散型变量)”“协变量(连续性变量)”“解释变量”,在数学公式中常用X来表示。针对大多数机器学习项目,特征会有很多个,所以此处用的是大写的X

根据输入数据是否具有“响应变量”信息,机器学习又进一步被分为“监督式学习”和“非监督式学习”。

监督式学习:输入数据中即有X变量,也有y变量,特色在于使用“特征(X变量)”来预测“响应变量(y变量)”。

非监督式学习:算法在训练模型时期不对结果进行标记,而是直接在数据点之间找有意义的关系,或者说输入数据中仅有X变量而没有y变量,特色在于针对X变量进行降维或者聚类,以挖掘特征变量的自身规律和特点。

注意

监督式学习和非监督式学习只是常见的机器学习分类,除了这两种之外,还有半监督式学习、强化学习等学习方式。

监督式学习的模型优劣及应用场景很好理解。模型优劣评价方面,输入X变量值后,通过机器学习算法构建模型得到y变量拟合值,将它与y变量实际值进行对比,即可检验模型的优劣。应用场景方面,比如根据目标客户的基本信息、交易信息等特征,预测客户是否会购买新产品,进而制定有针对性的市场营销策略;又比如根据目标客户的基本信息、财务信息、负债及对外担保信息等进行信用评级,进而制定有针对性的风险防控策略等。

非监督式学习由于目标不明确,因此其效果很难评估,它的价值在于发现模式以及相关性。从特征(变量)的角度来看,价值体现在对变量进行降维,从而有助于解释变量之间的关系或降低模型的复杂程度;从样本的角度来看,价值体现在对样本进行分类,可以研究个体之间的关系,将相近的个体划分在一起。比如可以用于商业银行的反洗钱领域或员工行为管理,通过非监督式学习把行为或个体快速进行分类,即使我们可能无法清楚地知晓分类意味着什么,但是也能快速区分出正常或异常的行为或个体,从而为深入分析做好准备,显著提升分析效率。又比如在搜索引擎中,我们基于用户特征把用户快速聚类,可精准实施广告投放或偏好信息推送。再比如在电商平台中,系统针对具有相似购买行为的用户推荐合适的产品,A用户和B用户为同一类,若A用户购买了某产品,则B用户大概率也会购买该产品,可将该产品推送给B用户,实现精准推荐等。

由此可见,特征是所有机器学习项目中是必不可少的组成部分,没有特征就无法开展机器学习,特征的质量对于机器学习的效果与效率也起着决定性作用。在开展机器学习项目时,为获得最佳模型预测效果,我们在符合成本效益的原则下倾向于搜集尽可能多的、预期对预测响应变量有效果的特征变量,但这些原始特征往往需要经过筛选、加工处理或提取后才能进入最终的算法模型。由此引出特征工程的概念。

特征工程:是指基于业务经验并使用数学、统计学等领域知识,对原始特征变量进行加工处理,从原始数据中获取有用特征,以提升模型预测精度或性能的一系列过程,包括特征选择、特征处理、特征提取等。特征工程概念示意图如图1.2所示。

图1.2 特征工程概念示意图

注意

数据清洗和特征工程的关系是什么?有什么区别?

数据清洗是独立于特征工程的:一方面,数据清洗不仅适用于机器学习项目,也适用于一般的数据统计分析过程,而特征工程仅适用于机器学习项目;另一方面,针对机器学习项目,数据清洗不仅适用于特征变量,也适用于响应变量,而特征工程仅适用于特征变量。

一般的数据统计分析过程不会涉及机器学习,因此就不会涉及特征工程,但是会涉及数据清洗。比如某银行分析其个人客户持有的产品数量分布情况,某公司分析其电商平台客户的年度交易次数等,其中很可能涉及处理数据缺失值、重复值和异常值等数据清洗过程。

机器学习项目既涉及数据清洗,也涉及特征工程。比如上述某银行分析其个人客户持有的产品数量分布情况对客户黏性(流失率)的影响,某公司分析其电商平台客户的年度交易次数对客户是否愿意转推介(推荐他人购买)的影响等,同样涉及处理数据缺失值、重复值和异常值等数据清洗过程,但除此之外,可能还涉及特征选择、特征处理、特征提取等特征工程内容。

有一种观点认为:数据清洗是特征工程的一个组成部分,特征工程涵盖数据清洗在内的特征预处理环节。该观点其实是从机器学习操作层面进行的概念界定,该观点所指的数据清洗实质上是狭义的“对机器学习特征变量的数据清洗”,而非通用意义上的数据清洗。